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());
    });
});​


利用可能な他の選択肢があるかもしれませんが、これは動作します
DEMO: http://jsfiddle.net/6aVjg/4/

よろしく、
NJ

于 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 に答える