2014-09-23 28 views
-1

已更新问题:如何在使用JQuery时在两个字段之间添加条件?

我在注册表Iam & you_are中有两个字段。第一个字段包含A,B,C,D &第二个字段包含相同的A,B,C,D。我想添加Jquery,如果我选择A或B,那么在第二个字段中只显示B & C.这意味着如果我选择A或B,然后从第二个字段A & B都进入隐藏模式。请帮忙。由于

$(document).ready(function(){ 
    $("$i_am=='A' || $i_am=='B'").select(function(){ 

    //condition here 

    } 

$ i_am & $ you_are是Drupal的变量或字段变量

+3

请使用您帖子底下的修改链接,在您的帖子中添加一些代码。 – reporter 2014-09-23 11:31:54

+0

请帮忙@reporter – veera 2014-09-23 11:40:16

+0

您是否选择了html元素进行选择? – Mahesh 2014-09-23 11:41:12

回答

0

可以有这样的多种方式。我有一个类似的任务,可以在几天前完成。我来到的方法如下:

  • 我检查了选定的值。
  • 然后我有几个数组,我需要根据条件在屏幕上填充值。
  • 然后我自己创建我的HTML在div(s)中。

代码:

function CreateFormFields(control) { 
    $("#dynamicFieldsPanel").empty(); 
    $("#normalDynamicFields").empty(); 

    var selectedSurvey = control.options[control.selectedIndex].text; // The control on whose value I had to create dynamic fields. 

    var defaultLabels = ['Client Reference Number', 
     'Request Date', 
     'Survey Date', 
     'Survey Time']; 

    var labelsIfMandoobOrCPV = ['Company Name', 
     'Contact Person Name', 
     'Contact Number', 
     'City Client', 
     'Street Name', 
     'Building Name Client']; 

    var labelsIfAuto = ['Dealer Name (Seller)', 
     'Dealer Name (Buyer)', 
     'Street Name', 
     'Building Name', 
     'Contact Number', 
     'Chassis Number', 
     'Car Make', 
     'Car Model']; 

defaultLabels.forEach(function (value) { 
    if (value.indexOf('Reference') !== -1) { 
     $("#normalDynamicFields").append('<li><p class="label">' + value + '</p><input id="txt' + value.replace(/\s+/g, '') + '" type="text" class="fields" /></li>'); 
    } 
    else if (value.indexOf('Number') !== -1) { 
     $("#normalDynamicFields").append('<li><p class="label">' + value + '</p><input id="txt' + value.replace(/\s+/g, '') + '" type="text" class="fields" onkeypress="return isNumberKey(event);" MaxLength="11" /></li>'); 
    } 
    else { 
     $("#normalDynamicFields").append('<li><p class="label">' + value + '</p><input id="txt' + value.replace(/\s+/g, '') + '" type="text" class="fields" /></li>'); 
    } 
}); 

if (selectedSurvey == "CPV" || selectedSurvey == "Mandoob") { 
    labelsIfMandoobOrCPV.forEach(function (value) { 
     if (value.indexOf('Number') !== -1) { 
      $("#dynamicFieldsPanel").append('<li><p class="label">' + value + '</p><input id="txt' + value.replace(/\s+/g, '') + '" type="text" class="fields" onkeypress="return isNumberKey(event);" MaxLength="11" /></li>'); 
     } 
     else if (value.indexOf('Reference') !== -1) { 
      $("#dynamicFieldsPanel").append('<li><p class="label">' + value + '</p><input id="txt' + value.replace(/\s+/g, '') + '" type="text" class="fields" /></li>'); 
     } 
     else { 
      $("#dynamicFieldsPanel").append('<li><p class="label">' + value + '</p><input id="txt' + value.replace(/\s+/g, '') + '" type="text" class="fields" /></li>'); 
     } 
    }); 
} 
else if (selectedSurvey == "Auto") { 
    labelsIfAuto.forEach(function (value) { 
     if (value.indexOf('Number') !== -1) { 
      $("#dynamicFieldsPanel").append('<li><p class="label">' + value + '</p><input id="txt' + value.replace(/\s+/g, '').replace("(", "").replace(")", "") + '" type="text" class="fields" onkeypress="return isNumberKey(event);" MaxLength="11" /></li>'); 
     } 
     else { 
      $("#dynamicFieldsPanel").append('<li><p class="label">' + value + '</p><input id="txt' + value.replace(/\s+/g, '').replace("(", "").replace(")", "") + '" type="text" class="fields" /></li>'); 
     } 
    }); 
} 

    AttachPluginsToControls(); 
} 

现在,你不得不花些时间给这个代码来了解。但如果我正确理解了你的要求,那就足够了。

+0

我不得不在动态字段上添加一些验证和其他内容,因此我已经完成了如下检查:if(value.indexOf('Number')! == -1)' 这意味着文本框将只有数字。所以我补充说: 'onkeypress =“return isNumberKey(event);”'这是另一个确保只有数字被插入的函数。 – FreshDev 2014-09-23 11:49:45

相关问题