限制asp.net中的多个事件;Javascript

Restrict multiple events in ASP .net & Javascript

本文关键字:事件 Javascript asp net 限制      更新时间:2023-09-26

我有一个文本框,附带一个文本更改事件;

 <asp:TextBox ID="txtLoadPortCode" MaxLength="8" runat="server" ToolTip="Load     Port Code" CssClass="form-control form-control-Mandatory" OnTextChanged="txtLoadPortCode_TextChanged" AutoPostBack="true"></asp:TextBox>

在文本更改时,它触发一个服务器端事件从数据库中获取Name,如果Name缺失,它显示一个从服务器端触发的Javascript警报。

ScriptManager.RegisterStartupScript(this, GetType(), "OriginPortMissing", "$(function(){alert('"This combination '" + this.txtLoadPortCode.Text + "' of Country, City & Site is not available in Master table. Please provide a valid Code.'");});", true);

我也有一个提交按钮,它有一个Javascript字段验证附加与它;

<asp:LinkButton ID="btnSubmitCreateRequest" runat="server" CssClass="btn btn-primary btn-custom btn-Custom-Link" OnClick="btnSubmitCreateRequest_Click" OnClientClick="return ValidateFields();">
    <i class="fa fa-paper-plane" aria-hidden="true"></i>
    <span>Submit Booking</span>
</asp:LinkButton>

在ValidateFields()函数上,我已经为多个控件编写了字段验证,如果任何验证失败,它会在"警报"窗口中显示错误消息。

所以情况是,如果用户在文本框中给出一些值并直接点击提交按钮,那么文本更改事件和提交按钮javascript验证都会被触发,同时产生双重警告消息(IE 11浏览器)。

是否有任何方法可以限制提交按钮验证事件?

最初不显示LinkButton,将其设置为visible="false",在文本更改后(我的意思是在Textchanged事件中)尝试将LinkButton设置为visible="true"

使用setTimeOut

延迟验证
setTimeOut(function(){ put your validation code },10000)

Jquery中有这样的规定。使用event.stopImmediatePropagation()。https://api.jquery.com/event.stopimmediatepropagation/] [1]请核对一下。