沒有改變數據我已經從參考Generic way to detect if html form is edited集標誌,如果假以形式
$.fn.extend({
trackChanges: function() {
$(":input", this).change(function() {
$(this.form).data("changed", true);
});
},
isChanged: function() {
return this.data("changed");
}
});
使用的代碼,並使用它像
$("#check").click(function() {
$("#myform").trackChanges();
if ($("#myform").isChanged()) {
alert("changed");
} else {
alert("Not changed");
}
});
但我不知道如何捕捉到不改事件,每當我點擊按鈕時它警告改變,我也需要趕上沒有改變的事件。控制是不會到別的部分
HTML
<form id="myform">
<input type="text" id="id1" />
<select id="id2" ><option>1</option><option>2</option></select>
<textarea>asdasd</textarea>
<input type="button" id="check" value="button"/>
</form>
$.fn.extend({
trackChanges: function() {
$(":input", this).change(function() {
$(this.form).data("changed", true);
});
},
isChanged: function() {
return this.data("changed");
}
});
<form id="myform">
<input type="text" id="id1" />
<select id="id2"><option>1</option><option>2</option></select>
<textarea>asdasd</textarea>
<input type="button" id="check" value="button" />
</form>
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script>
$(document).ready(function() {
$("#myform").trackChanges();
$("#check").click(function() {
if ($("#myform").isChanged()) {
alert("vam");
} else {
alert("no");
}
});
});
</script>
只有在單擊按鈕時調用trackChanges方法纔沒有意義。您需要提前調用它,以便它實際上有機會在單擊按鈕之前聽取字段更改。 – CBroe
我已將trackChanges放在點擊功能之外,但仍然只打電話給已更改的警報 – vamsi