7
我觉得我已经做了很多次这种情况,它通常工作,所以我明显缺少的东西。ASP.NET/JavaScript - 为什么不“返回错误”不能防止回传?
这里是我的服务器端ASP.NET按钮:
<asp:Button ID="btnFoo" runat="server" Text="Foo" CssClass="button foo" OnClientClick="foo_Click();" />
当中去是客户上呈现为:
<input type="submit" name="reallylongclientid" value="Foo" onclick="foo_Click();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(reallylongclientidandpostbackoptions, false, false))" id="reallylongclientid" class="button foo">
没有意外出现。
这里的惊喜,在我的JavaScript函数:
function foo_Click() {
return false;
}
好了,还有更多的比,但我把它砍下来证明这一点。
当我点击按钮时,它调用客户端函数,并返回false。
但它仍然回发到服务器,为什么?
我基本上要做到这一点按钮的点击:
- 待办事项客户端验证。
- 如果验证通过,发回
- 如果不是,则在窗体上显示一些错误消息。
当然,我可以改变这一个客户端按钮(INPUT TYPE =“按钮”)和手动开球时,我想回发,但我不应该需要做的。或者我应该?
知道这是明显的(拍打头部)。谢谢。 – RPM1984 2010-08-06 06:03:12
我只注意到如果我做“var passedValidation = new Boolean(false); return passedValidation”它仍然回传。但如果我只是返回false,它不会。 WTF?有任何想法吗? – RPM1984 2010-08-06 06:12:11
@ RPM1984:在布尔上下文中使用布尔型构造函数时,使用'new'关键字创建'Boolean' * object wrapper *,在JavaScript中,任何对象都被认为是* truthy *,例如:'' !! new Boolean(false)'==>'true',我会建议你简单地使用布尔值true或false,直接表示原始值... – CMS 2010-08-06 06:22:56