在SELECT更改时隐藏/显示DIV

时间:2013-08-13 17:00:32

标签: jquery html

我正在尝试在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()吗?

3 个答案:

答案 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_typeselect元素,则您需要使用change,而不是click

如果prod_detail_create_field_type实际上是name radio个元素的input,那么您希望将您的活动绑定到[name='prod_detail_create_field_type']

答案 2 :(得分:0)

而不是$(this),请尝试使用$("#theIdOfYourSelectBox")

此外,不要使用attrremoveAttr,而只需使用showhide - $("#values").show()

最后,您应该比较的值可能需要在引号中为"1""2"(除非您将val()解析为int)。