我正在使用下面的代码来查看用户是否正在更改任何表单元素。
var content = [];
$(":input").each(function(i,item){
content[i] = $.trim($(item).val()) || $(item).prop("checked");
$(item).on('input, change', function(data) {
var currentVal = $.trim($(this).val());
if(currentVal != content[i]) console.log("changed");
else console.log("no change");
})
});
console.log(content);
它工作正常,除了单选和复选框控件。如何检查这些变化?这是我在jsfiddle制作的示例,有人建议我最好的方法吗?
我根据 yckart 的建议修改了该功能,它可以正常工作。但我没有像与复选框或单选按钮交互那样获得实时更新。如果有人建议/纠正我的功能,我将不胜感激。
这是我的功能:
var content = [];
$(":input").each(function (i, item) {
if (!item.value.match(/on|off/)) {
content[i] = $.trim($(item).val())
} else {
content[i] = $(item).prop("checked");
}
$(item).on('input, change', function (data) {
var currentVal = !$(this).val().match(/on|off/) ? $.trim($(this).val()) : $(this).prop("checked") ;
console.log(currentVal);
if (currentVal != content[i]) console.log("changed");
else console.log("no change");
})
});
谢谢大家...