我在更新面板中有2個asp.net文本框。這兩個文本框控件都將一些JavaScript附加到自動標記欄,以便在下一個字段中僅允許數字輸入。當我在第一個字段中輸入一些數據並按下回車鍵時,焦點轉移到下一個字段,即使我剛進入該字段,第二個字段的requiredfieldvalidator也會顯示「* required」錯誤消息。當我第一次進入文本框時,如何防止驗證器發射?ASP.NET必需的字段驗證器在Firefox中的焦點上發射
我還應該提到兩個文本框都在gridview頁腳中。
下面的代碼:
<asp:TextBox ID="add_ISBN" runat="server" Columns="14" MaxLength="17" CssClass="focus" />
<asp:TextBox ID="add_Qty" runat="server" Columns="4" MaxLength="4" />
<asp:RequiredFieldValidator ID="rfvQty" ControlToValidate="add_Qty" ErrorMessage="* required" ForeColor="Red" Display="Dynamic" EnableClientScript="true" ValidationGroup="Add" runat="server" />
在代碼隱藏:
add_ISBN.Attributes.Add("onkeydown", "return isbnCheck(event, '" & add_Qty.ClientID & "')")
和JavaScript:
function isbnCheck(e, id) {
e = e || window.event;
var key = e.which || e.keyCode
if (validIsbnChars.indexOf(parseInt(key, 10)) >= 0) {
return true;
} else {
if (key == 13) {
var nextfield = document.getElementById(id);
if (nextfield) nextfield.focus();
return false;
}
if (e.preventDefault) e.preventDefault();
e.returnValue = false;
return false;
}
}
JavaScript的只允許字符的有效子集,如果用戶按下輸入鍵,將焦點設置到下一個字段。
您需要發佈一些標記和腳本,以便我們可以幫助您。 – 2010-05-20 15:55:08