我们正在将JQuery引入现有的 ASP.NET 应用程序,并使用 JQuery 的Validate 插件来进行客户端验证(我们不想使用 asp.net 验证器)。
一切都很好地与 asp:Button 控件配合使用。在提交页面之前触发客户端验证。
但是,当使用LinkButton和ImageButton控件时,页面会在没有先验证表单的情况下提交。
这是因为 validate 适用于呈现为Input type="submit"而 ImageButton 呈现为Input type="image"的按钮。
还有其他人经历过吗?
非常感谢您提供如何解决的想法和信息。
更新:
非常感谢,您的回答有助于确定问题。事实证明,JQuery 的验证插件中有一个错误。我们使用了一个补丁来避免验证隐藏输入字段,它使用parents().filter(":hidden")。这在JQuery 1.3.2中不能正常工作。我们将其替换为.is(":visible")。现在 asp.net ImageButton 默认工作!
更新2:
LinkButton 仍然不起作用。简单的解决方案是添加一个 click 函数,如果表单无效则返回 false:
$("#<%= tb.ClientID %>").click(function() {
return $('form').valid();
})