下拉选择不会改变.change()

时间:2018-05-22 16:27:02

标签: javascript jquery

我遇到了一个问题,即下拉元素的值正在被正确更改,但是由于所选值不正确而在页面上显示的内容。

例如,根据下面的逻辑,当为#searchParam1选择值'SEL'时,#searchParam2的值应该通过resetSelection()方法重置为'SEL'。事实上,当我调试时,我可以验证值是否按预期更改。但是,即使使用.change()调用,下拉列表仍然保持不变。

我已尽力将代码解析为与我的问题完全相关的内容,所以请原谅任何拼写错误或缺少括号(完整代码在任何时候都不会产生任何错误)。

$(document).ready(function () {

     $('#searchParam1').change(function () {
         var value = $('#searchParam1').val()
         var number = 1
         if (value == 'SEL') {
             resetSelection(number)
         }
     })
     $('#searchParam2').change(function () {
         var value = $('#searchParam2').val()
         var number = 2
         if (value == 'SEL') {
             resetSelection(number)
         }
     })
 })

function resetSelection(number) {
     $('#searchParam' + (number + 1).toString()).val('SEL').change()
 }

1 个答案:

答案 0 :(得分:0)

此代码似乎工作正常:小提琴here

HTML

<select id="searchParam1">
  <option>SEL</option>
  <option>Other1</option>
  <option>Other2</option>
</select>

<select id="searchParam2">
  <option>SEL</option>
  <option>Other1</option>
  <option>Other2</option>
</select>

JS代码

$(document).ready(function() {

   $('#searchParam1').change(function() {
     var value = $('#searchParam1').val()
     var number = 1
     if (value == 'SEL') {
       resetSelection(number)
     }
   });

   $('#searchParam2').change(function() {
     var value = $('#searchParam2').val()
     var number = 2
     if (value == 'SEL') {
       resetSelection(number)
     }
   });
});

function resetSelection(number) {
  $('#searchParam' + (number + 1).toString()).val('SEL');
}