我有一个ajaxmodalpop,它有一些像下面这样的控件;问题是每当我按下文本框上的“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);
}
}
答案 0 :(得分:0)
如果按钮在单击时通过验证,则应禁用该按钮。
UseSubmitBehavior="false" OnClientClick="if(Validate()){this.disabled=true;}"