2

I have a dynamic form that creates drop downs and increments the names correctly. What i need to do is hide a text box if the user selects a certain dropdown value. This i can do, but what i need help on is hiding the right thing as the names are incremental.

$("select[id^=Profession]").change(function() {
 if(jQuery(this).find("option:selected").val() == "2") {
    jQuery("#ADA_1").hide();
} else {
    jQuery("#ADA_1").show();
};  });

Working Sample: jsfiddle

4

4 回答 4

4

尝试这个:

$("select[id^=Profession]").change(function() {
 var id = $(this).attr('id').split('Profession')[1];
 if(jQuery(this).find("option:selected").val() == "2") {
    jQuery("#ADA_"+id).hide();
 } else {
    jQuery("#ADA_"+id).show();
 }
});

工作小提琴

于 2013-04-22T21:22:32.207 回答
2

尝试这个:

$("select[id^=Profession]").change(function () {
    index = $(this).attr('id').substr(-1);
    if (jQuery(this).find("option:selected").val() == "2") {
        jQuery("#ADA_"+index).hide();
    } else {
        jQuery("#ADA_"+index).show();
    }
});

jsFiddle 示例

于 2013-04-22T21:21:58.807 回答
1

你也可以这样做:

$("select[id^=Profession]").change(function () {
    if (jQuery(this).find("option:selected").val() == "2") {
        jQuery(this).parent().next("[id^=ADA_]").hide();
    } else {
        jQuery(this).parent().next("[id^=ADA_]").show();
    }
});

jsfiddle 演示

于 2013-04-22T21:25:31.333 回答
1
$("select[id^=Profession]").change(function () {
    var id = $(this).attr('id').replace('Profession', '');
    if (jQuery(this).find("option:selected").val() == "2") {
        jQuery("#ADA_"+id).hide();
    } else {
        jQuery("#ADA_"+id).show();
    }
});

演示

于 2013-04-22T21:30:26.450 回答