2013-04-22 206 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

相關問題