我们正在向现有的ASP.NET应用程序引入 JQuery ,并使用验证插件进行JQuery进行客户端验证(我们不想使用asp .net验证器)。
使用asp:Button控件可以很好地工作。在提交页面之前触发客户端验证。
但是,当使用 LinkButton 和 ImageButton 控件时,页面会在未先验证表单的情况下提交。
这是因为验证适用于呈现为输入类型=“提交”的按钮,而ImageButton呈现为输入类型=“图像”。
其他人有过这种经历吗?
非常感谢您的想法和信息如何解决。
非常感谢,您的回答有助于找出问题所在。 事实证明,JQuery的validate插件中存在一个错误。我们使用补丁来避免验证隐藏的输入字段,它使用 parents()。filter(“:hidden”)。这在 JQuery 1.3.2 中无法正常工作。我们将其替换为 .is(“:visible”)。现在asp.net ImageButton默认工作了!
LinkButton仍无效。简单的解决方案是添加一个click函数,如果表单无效,则返回false:
$("#<%= tb.ClientID %>").click(function() {
return $('form').valid();
})
答案 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();
});
您可能需要将“表单”替换为更具体的内容,但我尝试尽可能准确地获取它,而不知道页面上的所有内容是如何布局的。如果这有帮助,请回复!