0
我有一個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" />
爲了維護是否頁面或不存在錯誤的狀態。 這是因此,如果在表格上存在錯誤,我可以設置,否則我將其設置爲0。
我點擊此按鈕後,它將該值設置爲1表示#ERROR(這僅僅是一個div的值以1 ),但是那個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();
}
});
});
做同樣的事情...我點擊「保存」按鈕,它將值設置爲1,顯示錯誤消息,但然後再次消失......這是我遇到的問題。 – oJM86o 2012-04-19 21:28:55
我認爲它與我的jQuery代碼的開始有關,在我列出所有jQuery的末尾處查看我的帖子。它看起來像這個隱藏的字段是空的後回發... – oJM86o 2012-04-19 21:31:25
更新:),問題是,當呈現它的ASP按鈕變換爲提交按鈕,每次你點擊它,頁面重新發送到服務器並導致回發。所以你可以使用.preventDefault()來避免回發。 – jcvegan 2012-04-19 21:42:10