在设置select 元素的值时,触发change 事件的最简单和最好的方法是什么。
我期望执行以下代码
$('select#some').val(10);
或
$('select#some').attr('value', 10);
将导致触发更改事件,我认为这是非常合乎逻辑的事情。对吧?
嗯,事实并非如此。你需要通过这样做来触发 change() 事件
$('select#some').val(10).change();
或
$('select#some').val(10).trigger('change');
但我正在寻找一些解决方案,只要 select 的值被某些 javascript 代码更改,就会触发更改事件。
最佳答案
我有一个非常相似的问题,我不太确定你有什么问题,因为你建议的代码对我来说非常有用。它立即(您的要求)触发以下更改代码。
$('#selectField').change(function(){
if($('#selectField').val() == 'N'){
$('#secondaryInput').hide();
} else {
$('#secondaryInput').show();
}
});
然后我从数据库中获取值(这在表单上用于新输入和编辑现有记录),将其设置为选定值,并添加我缺少的部分以触发上述代码,”.change()”.
$('#selectField').val(valueFromDatabase).change();
因此,如果数据库中的现有值为“N”,它会立即隐藏我表单中的辅助输入字段。
关于jquery - 使用 val() 函数设置 <select> 的值时触发 change() 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760873/