我正在尝试在div
上显示/隐藏select
元素,具体取决于值。为此,我这样做:
$("#form_pdetail").on("click", "#prod_detail_create_field_type", function() {
if ($(this).val() == 1 || $(this).val() == 2 || $(this).val() == 3) {
$("#values").removeAttr("display");
} else {
$("#values").attr("style", "display: none");
}
});
但是由于div#values
永远不会出现,所以它无效。我做错了什么?我应该使用toggle()
吗?
答案 0 :(得分:2)
使用css
代替attr
功能:
$("#values").css({'display': 'block'});
或$("#values").css({'display': 'none'});
。
作为快捷方式,您可以使用.hide()
和.show()
答案 1 :(得分:1)
使用toggle()
http://api.jquery.com/toggle/#toggle-showOrHide
var val = parseInt($(this).val());
$("#values").toggle(val == 1 || val == 2 || val == 3);
如果prod_detail_create_field_type
是select
元素,则您需要使用change
,而不是click
。
如果prod_detail_create_field_type
实际上是name
radio
个元素的input
,那么您希望将您的活动绑定到[name='prod_detail_create_field_type']
答案 2 :(得分:0)
而不是$(this)
,请尝试使用$("#theIdOfYourSelectBox")
此外,不要使用attr
和removeAttr
,而只需使用show
和hide
- $("#values").show()
。
最后,您应该比较的值可能需要在引号中为"1"
和"2"
(除非您将val()解析为int)。