为了账号安全,请及时绑定邮箱和手机立即绑定

不使用动态注入元素

不使用动态注入元素

手掌心 2019-07-17 09:51:31
不使用动态注入元素我在和你一起工作ASP.Net MVC3,使用客户端验证的更容易的方法是启用jquery.validate.unobtrusive..一切都很好,就像服务器上的东西一样。但是当我尝试用javascript注入一些新的“输入”时,我知道我需要调用$.validator.unobtrusive.parse()重新约束验证。但是,所有这些动态注入的磁场都没有发挥作用。更糟糕的是,我尝试使用jquery.validate它也不起作用。有什么想法吗?
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

我尝试了Xhalent的方法,但不幸的是,它并不适合我。罗宾的方法成功了,但没有奏效。它对动态添加的元素非常有用,但是如果您尝试使用JQuery删除所有验证属性并从DOM中跨越,验证库仍然会尝试验证它们。

但是,如果除了“validationData”之外,还删除了表单的“unobtrusiveValId”数据,那么它对于动态添加和删除要验证或不验证的元素非常有吸引力。

$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");


查看完整回答
反对 回复 2019-07-17
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

我也有同样的问题。我发现不可能在同一表单上两次调用$.valdator.unobtrusive.parse()。当最初从服务器加载表单时,表单将由非突出库自动解析。当您向表单动态添加一个输入元素并再次调用$.valdator.unobtrusive.parse()时,它将无法工作。parseElement()也是如此。

不显眼的库调用jQuery验证插件的验证方法来设置所有规则和消息。问题是,当再次调用时,插件不会更新其给定的新规则集。

我找到了一个粗略的解决方案:在调用unobStrusivelib上的解析方法之前,我丢弃了表单验证器:

$('yourForm').removeData("validator");

现在,当验证方法被非突出库调用时,将重新创建所有规则和消息,包括动态添加的输入。

希望这能帮上忙


查看完整回答
反对 回复 2019-07-17
  • 3 回答
  • 0 关注
  • 364 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信