不使用动态注入元素

不使用动态注入元素

我在和你一起工作ASP.Net MVC3,使用客户端验证的更容易的方法是启用jquery.validate.unobtrusive..一切都很好,就像服务器上的东西一样。

但是当我尝试用javascript注入一些新的“输入”时,我知道我需要调用$.validator.unobtrusive.parse()重新约束验证。但是,所有这些动态注入的磁场都没有发挥作用。

更糟糕的是,我尝试使用jquery.validate它也不起作用。有什么想法吗?


慕少森
浏览 287回答 3
3回答

拉风的咖菲猫

我尝试了Xhalent的方法,但不幸的是,它并不适合我。罗宾的方法成功了,但没有奏效。它对动态添加的元素非常有用,但是如果您尝试使用JQuery删除所有验证属性并从DOM中跨越,验证库仍然会尝试验证它们。但是,如果除了“validationData”之外,还删除了表单的“unobtrusiveValId”数据,那么它对于动态添加和删除要验证或不验证的元素非常有吸引力。$("form").removeData("validator"); $("form").removeData("unobtrusiveValidation"); $.validator.unobtrusive.parse("form");

喵喵时光机

我也有同样的问题。我发现不可能在同一表单上两次调用$.valdator.unobtrusive.parse()。当最初从服务器加载表单时,表单将由非突出库自动解析。当您向表单动态添加一个输入元素并再次调用$.valdator.unobtrusive.parse()时,它将无法工作。parseElement()也是如此。不显眼的库调用jQuery验证插件的验证方法来设置所有规则和消息。问题是,当再次调用时,插件不会更新其给定的新规则集。我找到了一个粗略的解决方案:在调用unobStrusivelib上的解析方法之前,我丢弃了表单验证器:$('yourForm').removeData("validator");现在,当验证方法被非突出库调用时,将重新创建所有规则和消息,包括动态添加的输入。希望这能帮上忙
打开App,查看更多内容
随时随地看视频慕课网APP