2013-04-22 65 views
2

我有一个动态的形式,创建下拉和正确增加名称。我需要做的是隐藏一个文本框,如果用户选择某个下拉值。这我可以做,但我需要帮助的是隐藏正确的事情,因为名称是增量式的。jQuery的 - 隐藏CSS如果选择下拉选择

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

工作示例:jsfiddle

回答

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

working fiddle

+0

使用“拆分”选项并不是我曾经想过的。优秀的建议! – 2013-04-22 21:34:50

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 example

+2

什么,如果数字是10样Profession10? – 2013-04-22 21:28:15

+0

我其实也在想。在这种情况下,这个建议将不起作用。 – 2013-04-22 21:33:05

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 demo

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

DEMO