jquery - 使用 val() 函数设置 <select> 的值时触发 change() 事件

标签 jquery events triggers onchange

在设置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/

相关文章:

javascript - 滚动经过全屏背景图像后如何更改导航栏背景颜色

jquery如何验证文件字段?

javascript - 停止触发的 JS touchmove 事件。

C#:线程安全事件

mysql - MySQL中BEGIN和END的正确使用

SQL Server 2014 跨多个数据库触发

javascript - 如何将 div 的文本作为 json 字符串放置?

jquery - 使用 jquery 选择器更改背景图片

javascript - 在选择之前检测浏览器自动填充

javascript - 每次 ember 渲染或重新渲染时触发 jquery 事件