在jQuery中,有没有一种简单的方法来测试表单的任何元素是否发生了变化?
假设我有一个表单和一个带有以下click()
事件的按钮:
$('#mybutton').click(function() {
// Here is where is need to test
if(/* FORM has changed */) {
// Do something
}
});
如何测试表单在加载后是否发生了更改?
发布于 2011-10-04 15:53:26
如果您想检查表单数据是否发生了更改,您可以在页面加载时序列化表单数据,并将其与当前表单数据进行比较:
$(function() {
var form_original_data = $("#myform").serialize();
$("#mybutton").click(function() {
if ($("#myform").serialize() != form_original_data) {
// Something changed
}
});
});
发布于 2014-05-16 21:14:19
一个实时而简单的解决方案:
$('form').on('keyup change paste', 'input, select, textarea', function(){
console.log('Form changed!');
});
发布于 2010-06-12 02:52:37
查看更新后的问题,尝试如下所示
$('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");
});
});
对于原始问题,请使用以下内容
$('input').change(function() {
alert("Things have changed!");
});
https://stackoverflow.com/questions/3025396
复制相似问题