如何在使用JQuery时在两个字段之间添加条件?

时间:2014-09-23 11:29:28

标签: jquery drupal

更新的问题:

我在注册表格中有两个字段Iam&你是。第一个字段包含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变量或字段变量

1 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点。我有类似的任务要在几天前完成。我的方法是:

  • 我检查了所选的值。
  • 然后,根据条件,我需要在屏幕上填充值很少的数组。
  • 然后我自己在div中创建了我的HTML。

代码:

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();
}

现在您必须在某个时候提供此代码才能理解。但如果我理解你的要求,那就足够了。