ASP.NET LinkBut​​ton / ImageButton和JQuery验证?

时间:2009-03-16 09:36:10

标签: asp.net jquery jquery-validate

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

使用asp:Button控件可以很好地工作。在提交页面之前触发客户端验证。

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

这是因为验证适用于呈现为输入类型=“提交”的按钮,而ImageButton呈现为输入类型=“图像”

其他人有过这种经历吗?

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

更新

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

UPDATE2:

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

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

2 个答案:

答案 0 :(得分:3)

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

javascript是:

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

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

答案 1 :(得分:0)

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

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

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

您可能需要将“表单”替换为更具体的内容,但我尝试尽可能准确地获取它,而不知道页面上的所有内容是如何布局的。如果这有帮助,请回复!