我在 ASP.Net 中有一个用户控件,其中包含一个用于回发的按钮。此按钮还有一些在处理事件之前完成的 Javascript 验证。
今天我尝试通过设置按钮的 PostBackURL 属性回发到另一个 URL。但它没有用,页面不断发回自己。所以我做了一些调查并发现了这一点。
- 回发到另一个 URL 是通过 ASP.Net 中的 Javascript 实现的。
如果我继续调用我的验证函数
OnClientClick="返回验证()" 然后回发不会发生。
- 如果我删除对验证函数的调用,回传工作正常。
这是打开验证时按钮标记的样子。
<input type="submit" name="ctl00$cphMain$pra1$btnSubmit" value="Submit" onclick="return validate();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$cphMain$pra1$btnSubmit", "", false, "", "Result.aspx", 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("ctl00$cphMain$pra1$btnSubmit", "", false, "", "Result.aspx", 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/