我有一个 ajaxmodalpop,它有一些控件,如下所示;问题是每当我在文本框上按“Enter”键时,它会将焦点设置在按钮上(这是正确的),但是如果我非常快速地按五六次(或多次)“Enter 键”,那么按钮会触发与我一样多次按下回车键。 虽然我在客户端单击按钮时有一个验证功能,但它不能(如果文本框值被清除,甚至无法通过验证功能)每隔一次传递该功能。因为我从服务器端清除了文本框值。
非常紧急,亲爱的专家
<asp:TextBox ID="txtPurpose" runat="server" TabIndex="4" Width="558px" Style="text-transform: uppercase; overflow: hidden" CssClass="textleftWithBorder" ClientIDMode="Static" onkeydown="ConvertEnterToTab(event)">/asp:TextBox>
<asp:Button runat="server" ID="btnSubmitNAdd" TabIndex="5" Text="Submit & Add" ClientIDMode="Static" UseSubmitBehavior="true" onkeydown="HandleLeftRightArrow(event,'btnClose','btnSubmitAndClose')" OnClick="btnSubmitNAdd_Click" OnClientClick="return Validate()" />
和功能是;
function ConvertEnterToTab(e) {
var keyCode = e.keyCode || e.htmlEvent.keyCode;
if (keyCode === 13) {
var nextElement = document.getElementById("btnSubmitNAdd");
if (nextElement != undefined) {
nextElement.focus();
e.cancelBubble = true;
e.returnValue = false;
return false;
}
}
}
function Validate() {
if (ValueOf("txtCustomerName") != _CustomerResetText) {
return true;
}
else {
return false;
}
}
function HandleLeftRightArrow(event, leftControl, rightControl) {
var code = (event.keyCode ? event.keyCode : event.which);
if (code == 39) {
if (document.getElementById(leftControl).disabled == false)
SetControlFocus(rightControl);
}
else if (code == 37) {
if (document.getElementById(rightControl).disabled == false)
SetControlFocus(leftControl);
}
}