如果我输入 Javascript 验证,ASP.Net PostbackURL 将不起作用

标签 asp.net javascript validation webforms postback

我在 ASP.Net 中有一个用户控件,其中包含一个用于回发的按钮。此按钮还有一些在处理事件之前完成的 Javascript 验证。

今天我尝试通过设置按钮的 PostBackURL 属性回发到另一个 URL。但它没有用,页面不断发回自己。所以我做了一些调查并发现了这一点。

  1. 回发到另一个 URL 是通过 ASP.Net 中的 Javascript 实现的。
  2. 如果我继续调用我的验证函数

    OnClientClick="返回验证()" 然后回发不会发生。

  3. 如果我删除对验证函数的调用,回传工作正常。

这是打开验证时按钮标记的样子。

<input type="submit" name="ctl00$cphMain$pra1$btnSubmit" value="Submit" onclick="return validate();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$cphMain$pra1$btnSubmit&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Result.aspx&quot;, false, false))" id="ctl00_cphMain_pra1_btnSubmit" style="width:80px;" />

未经验证

<input type="submit" name="ctl00$cphMain$pra1$btnSubmit" value="Submit" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$cphMain$pra1$btnSubmit&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Result.aspx&quot;, false, false))" id="ctl00_cphMain_pra1_btnSubmit" style="width:80px;" />

您会注意到缺少对“return validate()”的调用,这一切都不同了。

我怎样才能让它工作?

最佳答案

替换

OnClientClick="return validate();" 

OnClientClick="if (!validate()) { return false; }"

关于如果我输入 Javascript 验证,ASP.Net PostbackURL 将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1153299/

相关文章:

asp.net - JavaScript 和 ASP.NET 控件前缀中的 "this"

javascript - JavaScript 中 like 语句的概念

javascript - 窗口调整大小之前和之后的innerWidth/innerHeight?

javascript - 逻辑运算的快捷方式

python - PyQt QWizard 验证和按钮覆盖

asp.net - 用户控件句柄上的 NullReferenceException

c# - 自定义 TraceListener 和多条消息

c# - 在 EWL 中,如何在页面中的任意位置显示自定义验证内容?

.NET Repeater - 自定义服务器验证

javascript - 从模态对话框 : Javascript 访问父 Windows URL