如何在打开页面后检查所有文本框、下拉菜单或其他元素中的数据是否已更改(想使用 javascript 或 jquery 进行检查)?谢谢!
问问题
122 次
3 回答
6
$("input,textarea,select").on("change",function(){
//do things
});
于 2012-05-16T06:17:41.807 回答
1
检查突变事件
http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-mutationevents
定义一个IsDirty()
函数,
将更改事件处理程序附加到页面中的首选元素
(function($){
$.fn.OldHtml = "";
$.fn.Attach= function() {
$.fn.OldHtml = this.html();
};
$.fn.IsDirty = function() {
return !($.fn.OldHtml == this.html())
};
})(jQuery);
$(document).ready(function(){
$("#Div1").Attach();//init tracking
$("#Div2").Attach();//init tracking
$("#change").click(function(){
$("#Div1").html("test");//make a change
});
$("#check").click(function(){
alert("Div1 Is Changed:"+$("#Div1").IsDirty()+"\nDiv2 Is Changed:"+$("#Div2").IsDirty());
});
});
也许还有其他可用的替代品,但这个工程
演示:http: //jsfiddle.net/6aVjg/4/
问候,
新泽西州
于 2012-05-16T06:40:42.420 回答
0
<%: Html.TextBoxFor(model => model.TripNumber, new { @tabindex = "1", maxlength = "20", onchange ="CheckDirty();" })%>
var isDirty = false;
function CheckDirty() {
$('input[type=text],textarea,select,input[type=checkbox],input[type=radio]').change(function () {
if (!isDirty) {
isDirty = true;
}
});
}
于 2012-05-16T06:30:07.640 回答