Jquery Validate Switch Validator Form



所以我有一个表单,表单A。最初,验证器附着在表单A上,但在某个时候,我克隆了表单A,这产生了表单B。现在,我希望表单A中的相同规则应用于表单B,但目前验证器正与表单一起克隆,并且该验证器仍指向表单A,克隆验证器指向的是Form A,而不是Form B。解决这个问题的理想方法是什么(越不黑客越好:)

所以我意识到我的问题有点不具体,但我已经解决了我的问题。我所做的解决方法是首先删除克隆上的验证器,如下所示:

clone.find('form').removeData("validator");

然后重新绑定验证器:

clone.find('form').validate({        
//more stuff here
});   

克隆后,您将拥有两个相同的代码块。

由于页面上不允许具有相同ID的元素,因此可以更改或重命名ID属性。向我们展示代码,我们将向您展示如何操作。

如果有javascript/jQuery事件绑定到这些元素,则任何重命名的元素都将离开DOM,变成类似于注入的元素(事实上,克隆的元素已经被视为注入的元素,因为它们最初不存在于DOM中)。因此,您需要对这些元素使用jQuery.on()方法。例如,假设您克隆了一个带有点击事件的<input>字段:

<input id="book_1" type="text" />

克隆后,您将有两个相同的输入字段:

<input id="book_1" type="text" />
<input id="book_1" type="text" />

您可以重命名第二个输入字段(我们可以帮助解决这个问题,也许在一个新的问题中),这样它就是:

<input id="book_1" type="text" />
<input id="book_2" type="text" />

但是,任何代码都必须更新,比如:

$('#book_1').click(function() {
alert('Clicked me!');
});
$(document).on('click', '#book_2', function() {
alert('Clicked me!');
});

请注意,您也可以将后一个结构与原始元素一起使用,但不能将第一个结构与注入(或修改)的元素一起使用。

此外,由于页面上不能有相同名称的ID,因此任何不希望更新的ID都应该更改为类。

如果你还有其他问题,我建议你创建第二个更具体的问题,并发布你的代码,这样我们就可以帮助你用程序完成你需要的东西。

最新更新