2

如何在打开页面后检查所有文本框、下拉菜单或其他元素中的数据是否已更改(想使用 javascript 或 jquery 进行检查)?谢谢!

4

3 回答 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 回答