如何在不触发更改事件的情况下设置select元素的选定选项?

时间:2012-05-20 16:11:00

标签: javascript jquery events select options

我目前正在使用此选项:

var sortNo = $('select[name=anzahl_eintraegeSEL]');

sortNo
    // set selected based on hidden input default value
    .find('option[value="'+ $('input[name=anzahl_eintraege]').val() +']')
    .attr('selected', 'selected').attr('set',true)
    // set up change listener
    .on('change', function(){
        // do sth
        });

我想将默认选项设置为选中而不触发初始更改事件。

我怎样才能让它发挥作用?以上似乎会立即引发变革事件。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可以尝试:

   sortNo
  .on('change', function(){
    // do sth
  })
  .val($('input[name=anzahl_eintraege]').val()); // set the default value get from hidden field

DEMO

答案 1 :(得分:1)

一次:在这一行:

.find('option[value="'+ $('input[name=anzahl_eintraege]').val() +']')

你错过了结束'“'。应该是:

.find('option[value="'+ $('input[name=anzahl_eintraege]').val() +'"]')

接下来你的.on()被执行,而jQuery上面有你的标签...我想你想要改变,而不是在。

你不需要自己找到选项标签,jQuery可以使用sortNo.val()来为你做。

我相信这就是你想要的?:http://jsfiddle.net/KadrG/