私はasp.netボタンを持っています:
<asp:Button ID="MainContent_ibSave" runat="server" Text="Save" />
</td>
runat=server
クリックしたときにいくつかのコードビハインドを処理する必要があるため、を保持する必要があります。しかし、jqueryにはこれがあります:
$("#MainContent_ibSave").click(function () {
if ($('#MainContent_txtShipToName').val().length == 0) {
$('#hErrorsExist').val("1");
$('#error').show();
}
else {
$('#hErrorsExist').val("0");
$('#error').hide();
}
基本的に、ここで行っていることは、#MainContent_txtShipToName にテキストが入力されているかどうかを確認することです。何も入力されていない場合にエラーメッセージをスローしたい。そうするために、隠しフィールドを追加すると思いました:
<input id="hErrorsExist" type="hidden" />
ページにエラーが存在するかどうかの状態を維持するため。これは、フォームにエラーが存在する場合は値を 1 に設定し、それ以外の場合は 0 に設定するためです。
このボタンをクリックすると、値が 1 に設定され、#error (単なる div) が表示されますが、div が消えます。ポストバックが hErrorsExist の値をリセットしたかのようです...
jqueryにチェックを追加しました:
if ($('#hErrorsExist').val() == "0" || $('#hErrorsExist').val().length == 0) {
alert("about to hide");
$('#error').hide();
alert($('#hErrorsExist').val());
}
else {
$('#error').show();
alert($('#hErrorsExist').val());
}
これは、私の文書準備機能の最初のことです。ボタンがポストバックした後でもdiv #errorが発生したままになるように、これを処理する方法がわかりません。値を入力して検証すると、hErrorsExist を 0 に設定し、div #error を非表示にして、ポストバック後に div を非表示のままにする必要があります。
完全なjqueryは次のとおりです。
$(document).ready(function () {
/*hide message container on top*/
//alert($('#hErrorsExist').val().length);
if ($('#hErrorsExist').val() == "0" || $('#hErrorsExist').val().length == 0) {
alert("about to hide");
$('#error').hide();
alert($('#hErrorsExist').val());
}
else {
$('#error').show();
alert($('#hErrorsExist').val());
}
$("#MainContent_ibSave").click(function () {
if ($('#MainContent_txtShipToName').val().length == 0) {
$('#hErrorsExist').val("1");
alert("Setting to 1");
alert($('#hErrorsExist').val());
$('#error').show();
}
else {
$('#hErrorsExist').val("0");
alert("Setting to 0");
alert($('#hErrorsExist').val());
$('#error').hide();
}
});
});