14

我们正在将JQuery引入现有的 ASP.NET 应用程序,并使用 JQuery 的Validate 插件来进行客户端验证(我们不想使用 asp.net 验证器)。

一切都很好地与 asp:Button 控件配合使用。在提交页面之前触发客户端验证。

但是,当使用LinkBut​​tonImageButton控件时,页面会在没有先验证表单的情况下提交。

这是因为 validate 适用于呈现为Input type="submit"而 ImageButton 呈现为Input type="image"的按钮。

还有其他人经历过吗?

非常感谢您提供如何解决的想法和信息。

更新:

非常感谢,您的回答有助于确定问题。事实证明,JQuery 的验证插件中有一个错误。我们使用了一个补丁来避免验证隐藏输入字段,它使用parents().filter(":hidden")这在JQuery 1.3.2中不能正常工作。我们将其替换为.is(":visible")。现在 asp.net ImageButton 默认工作!

更新2:

LinkBut​​ton 仍然不起作用。简单的解决方案是添加一个 click 函数,如果表单无效则返回 false:

$("#<%= tb.ClientID %>").click(function() {
            return $('form').valid();
        })
4

2 回答 2

3

第一个建议可能仍然有效,因为您可以在验证发生后使用 Javascript 触发回发。

javascript是:

__doPostBack('<%= YourImageControl.UniqueID %>','');

第二个空参数可用于传递参数。

于 2009-03-17T12:48:33.743 回答
0

不确定这是否会有所帮助,但试一试...

http://docs.jquery.com/Plugins/Validation/validate#options

$("input[type=image]").click(function() {
   $($(this).parents(form)).validate();
});

您可能需要将“表单”替换为更具体的内容,但我试图在不知道页面上所有内容的布局情况下使其尽可能准确。如果这有帮助,请回复!

于 2009-03-16T19:27:58.003 回答