javascript – 找出HTML表单是否已更改

前端之家收集整理的这篇文章主要介绍了javascript – 找出HTML表单是否已更改前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用 jquery我已经添加了一个更改处理程序到窗体.
当任何输入被改变时,此功能是有效的,但只有当用户手动更改输入时,而不是当其他代码更改输入时.

有没有办法检测表单是否已经改变,即使它的输入是通过代码更改的?

解决方法

是的,似乎有一些混乱.在一个理想的世界中,你会期望在交换事件发生时,只要输入变化,但不是会发生什么.我确信有很好的理由 – 也许不是.

克服这个障碍的一个方法是在显示之后将表单状态捕获到变量中,然后在提交它之前,检查状态是否已更改,并相应地采取行动.

一个易于存储的状态是serialize函数返回的.存储状态的简单方法是使用数据功能. serializedata都可以使用jquery.

当然,您可以使用其他不同形式的状态(某种形式的散列)或存储此状态(例如标准全局变量).

这里有一些原型代码

如果您的表单id为“xform”,则可以在窗体显示调用以下代码

$('#xform').data('serialize',$('#xform').serialize());

然后,当您需要检查时,例如在按钮提交之前,您可以使用:

if($('#xform').serialize()!=$('#xform').data('serialize')){
    // Form has changed!!!
}

你可以把它全部包装成一个副本&粘贴JavaScript代码片段,它将为您提供一个formHasChanged()函数调用,无论您需要它(NOT TESTED):

$(function() {
    $('#xform').data('serialize',$('#xform').serialize());
});
function formHasChanged(){
    if($('#xform').serialize()!=$('#xform').data('serialize')){
        return(true);
    }
    return(false);
}

但是我会停止这里,否则我将创建另一个jquery插件.

原文链接:https://www.f2er.com/js/151395.html

猜你在找的JavaScript相关文章