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

how to set the selected option of a select element without triggering a change event?

本文关键字:设置 情况下 SELECT 选项 元素 事件      更新时间:2023-09-26

>我目前正在选择:

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
        });

我想在不触发初始更改事件的情况下将默认选项设置为已选中。

我怎样才能让它工作?以上似乎会立即触发更改事件。

感谢您的帮助!

你可以试试:

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

演示

一次:在这一行中:

.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/