我在更新面板中有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