【问题标题】:jQuery listening to drop down menu forces specific select element valuejQuery监听下拉菜单强制特定的选择元素值
【发布时间】:2013-10-24 15:48:10
【问题描述】:

我有一些 jQuery,旨在在页面上的任何 <select> 元素发生更改时触发。如果该元素的值为“Other”,则会从与选择元素同名的 div 中删除一个类。

这是我的代码:

$('select').change(function(){
    var x = $(this).attr('name');
    if($(this).val('Other')) {
         $('div[name="' + x + '"]').removeClass('hidden');
    } else {
         $('div[name="' + x + '"]').addClass('hidden');
    }
});

它的工作原理是在页面加载时隐藏 div,如果选择“其他”,则会出现 div。

但是:

下拉列表中的任何选择都会导致选择“其他”(以及代码触发)

因此不可能选择“其他”以外的任何内容,即使尝试在病房后更改它。

谁能看出我哪里出错了?提前致谢

【问题讨论】:

    标签: jquery drop-down-menu


    【解决方案1】:

    改变

    if($(this).val('Other'))
    // this will set value to Other so if condition will always be true no matter what ever you select.
    

    if($(this).val() == 'Other') 
    // this will check if value is equal to Other
    

    或更好

    if(this.value == 'Other')
    

    【讨论】:

    • 完美 - 谢谢:你能解释一下为什么它没有按照我的方式工作吗? “如果”似乎应该停止规定性?
    • @Gideon if($(this).val('Other')) 您的代码不会检查值是否为Other,但会将值设置为Other,这将返回true,因此if 条件始终为true。即使您更改值,此条件也将始终为真。
    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多