Javascript 从自定义方法调用客户端事件
我有一个我目前正在处理的项目,它在创建回发时有多个验证程序和事件(经典的asp验证程序控件) 我在单击submit按钮时调用了一个客户端方法。它对各种服务进行ajax调用,一旦完成了所有操作,就会进行回发(通过经典的Javascript 从自定义方法调用客户端事件,javascript,c#,asp.net,dom-events,Javascript,C#,Asp.net,Dom Events,我有一个我目前正在处理的项目,它在创建回发时有多个验证程序和事件(经典的asp验证程序控件) 我在单击submit按钮时调用了一个客户端方法。它对各种服务进行ajax调用,一旦完成了所有操作,就会进行回发(通过经典的document.forms[0].submit()) 这里的问题是,我的javascript方法是在事件队列上每调用一次javascript之前运行的。第二个问题是,我的方法返回false以阻止回发(我进行异步调用,因此我需要确保只有在确保每个处理都已完成时才进行回发) 我想在验证
document.forms[0].submit()
)
这里的问题是,我的javascript方法是在事件队列上每调用一次javascript之前运行的。第二个问题是,我的方法返回false以阻止回发(我进行异步调用,因此我需要确保只有在确保每个处理都已完成时才进行回发)
我想在验证队列的末尾调用这个方法,或者在方法本身内部手动调用每个验证,然后运行ajax调用
以下是解释问题的POC(简单页面):
验证=函数(){
setTimeout(函数(){document.forms[0].submit()},2000);
返回false;
}
需要做点什么
在这里,Validate函数阻止回发以执行任何操作。2秒后,创建回发,RequiredFieldValidator验证服务器端的内容。我想让它验证客户端。也许javascript函数页\u ClientValidate()可以帮助您。使用此方法可以触发页面验证
你能发布一些代码,让我们看看你目前在做什么吗?很好的答案正是我想要的!
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<script type="text/javascript">
Validate = function () {
setTimeout(function () { document.forms[0].submit() }, 2000);
return false;
}
</script>
<asp:TextBox runat="server" ID="txtSomething"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" onclientclick="return Validate();" Text="Button" />
<asp:RequiredFieldValidator runat="server" ID="valRequiredTruc" ControlToValidate="txtSomething">something is required</asp:RequiredFieldValidator>
</asp:Content>