Javascript 忽略 <select> 标记的更改

标签 javascript jquery

我有一个 javascript,除非原始表单数据已更改,否则禁用提交按钮,我希望脚本忽略 <select> 的更改标签。请帮助我实现这一目标。

代码:

$(function(){

    $('form')
        .each(function(){
            $(this).data('serialized', $(this).serialize())
        })
        .on('change input', function(){
            $(this)             
                .find('input:submit, button:submit')
                    .attr('disabled', $(this).serialize() == $(this).data('serialized'))
            ;
         })
        .find('input:submit, button:submit')
            .attr('disabled', true)
    ;

});

谢谢

最佳答案

您可以检查该事件是否由 select 元素触发。如果是,则阻止进一步执行代码。

.on('change input', function(event) {
  if (event.target.nodeName !== 'SELECT') {
    $(this)             
      .find('input:submit, button:submit')
      .attr('disabled', $(this).serialize() == $(this).data('serialized'));
  }
})

关于Javascript 忽略 <select> 标记的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50313123/

相关文章:

javascript - tinyMCE Local Install 不适用于本地 js 文件,但可以用于远程 js 文件

jquery - 如何使用 jQuery UI 可选择表中仅选择一列?

javascript - Onchange bootstrap datepicker更改另一个bootstrap datepicker的值

javascript - 如何将多个克隆的 div 添加到本地存储中的数组,然后通过单击切换图标删除每个克隆?

jquery - JQuery.parseJSON 的无效 JSon 错误

JQuery 使项目具有阴影

javascript - Laravel 错误 : jQuery. 缓动不是函数

javascript - "observer"与 "notify"(在属性 block 中)与 "observers"与 "listeners"在 polymer 中的区别

javascript - 将长模板文字行包装为多行而不在字符串中创建新行

javascript - 电子邮件验证正则表达式在连字符上失败