私はjQueryの新機能ですが、.change関数を使用しようとしています。だから私がやっていることは、値がフォーム上で変更されたかどうかを調べることです。私のアプリケーションにはいくつかのマスターページ、更新パネルなどがあります。 (ASP.net)だから私は、マスターページに次のコードを使用しています:ページの更新後にjquery.change関数が起動しない
<asp:HiddenField ID="_Changed" runat="server" Value="false" />
<script>
$(":input").change(function() {
document.getElementById('_Changed').value = "true";
alert("Change occured");
return false;
});
</script>
これは、すべてのフォームに複数回動作しますが、私は実際にそれを使用しようとしています、それは一度だけ動作する一つの形に。この他のフォームは、非表示フィールドと対話する唯一のフォームです。このページのコードは次のとおりです。
<script>
function Home_Click() {
var boolRetVal = false;
if (document.getElementById('_Changed').value == "true") {
if (confirm("You have unsaved data do you wish to proceed?")) {
boolRetVal = true;
document.getElementById('_Changed').value = "false";
}
} else {
boolRetVal = true;
document.getElementById('_Changed').value = "false";
}
return boolRetVal;
}
</script>
<asp:Button ID="btnHome" runat="server" Text="Home" OnClientClick="return Home_Click()"
OnClick="btnHome_Click" CausesValidation="false" />
だから誰かがホームボタンをクリックしたときに、彼らは確認プロンプトに[OK]をクリックし、画面が.changeクエリが再び実行されることはありません再読み込みします。私はそれがちょうどもう一度実行されないjavascriptのエラーは表示されません。
[誰かがホームボタンをクリックしたときに確認プロンプトに[OK]をクリックし、画面がリロードされる]と言います。 Ajaxがページの重要な部分を変更した場合、リロードがリンクをクリックした場合、またはリロードした場合のリロードを意味しますか? – plauriola
UpdatePanelを使用してUIを更新していますか?または、ポストバックが完全なポストバックですか? –