onclientclick和postbackurl的问题

时间:2010-03-09 14:19:01

标签: asp.net javascript

我想在点击按钮时触发:

<asp:Button runat="server" ID="submit" Text="Submit" OnClientClick="country(this.form);" PostBackUrl="http://www.google.com/" /> 

在javascript中,我正在检查表单的验证。问题是,当我点击按钮时,它不是在等待验证,而是回发到google.com ...

如果我return country(this.form)然后按下按钮,它会等待验证,但在填写表单后不回发。如果javascript验证为false,我想要类似的东西。然后OnClientClick应该是return country(this.form)如果它是真的那么只有

country(this.form)

2 个答案:

答案 0 :(得分:9)

你可以这样做:

<asp:Button runat="server" ID="submit" Text="Submit" 
               OnClientClick="if(!country(this.form)) return false;" 
               PostBackUrl="http://www.google.com/" />

由于回发整体使用“onclick”,因此您的脚本将整合到ASP.Net脚本中,返回意味着没有该回发脚本运行。如果您使用if和only返回,如果需要,它将起作用。

当您查看渲染结果时更有意义,如下所示:

<input type="submit" name="submit" value="Submit" id="submit" onclick="if(!country(this.form)) return false; WebForm_DoPostBackWithOptions(.....)" />

答案 1 :(得分:0)

用return返回:

<asp:Button runat="server" ID="submit" Text="Submit" OnClientClick="return country(this.form);" PostBackUrl="http://www.google.com/" /> 

您的国家/地区功能将以返回true或false结束,

function country(form) {
   // Validations goes here
   return true;// or return false;
}