javascript - 你如何处理 jQuery 中的表单更改?

标签 javascript jquery

在 jQuery 中,是否有一种简单的方法来测试表单的任何元素是否已更改?

假设我有一个表单和一个带有以下 click() 事件的按钮:

$('#mybutton').click(function() {
  // Here is where is need to test
  if(/* FORM has changed */) {
     // Do something
  }
});

我如何测试表单加载后是否发生了变化?

最佳答案

你可以这样做:

$("form :input").change(function() {
  $(this).closest('form').data('changed', true);
});
$('#mybutton').click(function() {
  if($(this).closest('form').data('changed')) {
     //do something
  }
});

这会为表单中的输入设置一个change 事件处理程序,如果其中任何一个发生更改,它会使用.data()。将 changed 值设置为 true,然后我们只需在点击时检查该值,这假设 #mybutton 在表单内(如果不只是将 $(this).closest('form') 替换为 $('#myForm')),但你可以让它更通用,像这样:

$('.checkChangedbutton').click(function() {
  if($(this).closest('form').data('changed')) {
     //do something
  }
});

引用:更新

根据 jQuery,这是一个选择所有表单控件的过滤器。

http://api.jquery.com/input-selector/

The :input selector basically selects all form controls.

关于javascript - 你如何处理 jQuery 中的表单更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3025396/

相关文章:

javascript - 一种阻止脚本标记内的任何 HTTP 请求的方法?

javascript - 当 promise 被拒绝时抛出测试失败

javascript - 使用外部图像设置 div 宽度和高度?

javascript - 删除元素并通过 .click 将它们带回来

javascript - 为什么我的用于暂停和取消暂停用户的 JavaScript 无法正常工作?

javascript - FullCalendar 日期和时间处理

javascript - 无法使用 jQuery Easy Slider 插件 - 请帮助

javascript - jQueryparents() 选择器失败

javascript - 使用正则表达式进行 jQuery/Javascript 密码验证

javascript - Mongoose 无限循环模型创建