首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在jQuery中处理表单更改?

如何在jQuery中处理表单更改?
EN

Stack Overflow用户
提问于 2010-06-12 02:49:01
回答 9查看 160K关注 0票数 85

在jQuery中,有没有一种简单的方法来测试表单的任何元素是否发生了变化?

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

代码语言:javascript
复制
$('#mybutton').click(function() {
  // Here is where is need to test
  if(/* FORM has changed */) {
     // Do something
  }
});

如何测试表单在加载后是否发生了更改?

EN

回答 9

Stack Overflow用户

发布于 2011-10-04 15:53:26

如果您想检查表单数据是否发生了更改,您可以在页面加载时序列化表单数据,并将其与当前表单数据进行比较:

代码语言:javascript
复制
$(function() {

    var form_original_data = $("#myform").serialize(); 

    $("#mybutton").click(function() {
        if ($("#myform").serialize() != form_original_data) {
            // Something changed
        }
    });

});
票数 52
EN

Stack Overflow用户

发布于 2014-05-16 21:14:19

一个实时而简单的解决方案:

代码语言:javascript
复制
$('form').on('keyup change paste', 'input, select, textarea', function(){
    console.log('Form changed!');
});
票数 34
EN

Stack Overflow用户

发布于 2010-06-12 02:52:37

查看更新后的问题,尝试如下所示

代码语言:javascript
复制
$('input, textarea, select').each(function(){
    $(this).data("val", $(this).val());
});
$('#button').click(function() {
    $('input, textarea, select').each(function(){
        if($(this).data("val")!==$(this).val()) alert("Things Changed");
    });
});

对于原始问题,请使用以下内容

代码语言:javascript
复制
$('input').change(function() {
    alert("Things have changed!");
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3025396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档