2012-02-03 50 views
0

我遇到这样的问题一个新问题:无法删除的验证和应用使用jQuery验证插件

我们正在使用jquery验证插件进行客户端验证。用于初始化表单的脚本是动态生成的。表单本身也是使用jTemplates和json动态生成的。

问题是我需要重新初始化某些输入元素的验证并更改错误位置。我找不到任何可以重新验证插件api中的验证规则和错误位置的方法。

我一直试图做这样的事情:

下面的代码是为几个对象执行(someUniqueValue从这些对象采取)。

//removing old rules. 
$("input[value='someUniqueValue']").next('input:text').rules('remove'); 
//I have a hidden field with unique value and an input after it so the code above is ok. 

$("#someForm").validate({ 
    errorPlacement: function (error, elementToValidate) { 
     var $messageElement = $("[id='theExactFieldToValidate'][value='someUniqueValue']"); 
     //error placement logic 
    }, 
    rules: { 
     "theExactFieldToValidate": { 
      required: true, 
      maxlength: 25 
     } 
    } 
}); 

,我想验证我有以下各输入之前(我想在该跨度被显示的错误消息):

$("input[value='someUniqueValue']").next('input:text').rules('remove'); 
:执行以下后

<span id="validate-theExactFieldToValidate" class="hidden" style="display:block" value="someUniqueValue"></span> 

元素失去验证规则,但如果我尝试应用新规则,则不会发生任何事情。

$("input[value='someUniqueValue']").next('input:text').rules() 

上面的代码只是返回一个空对象。

如何更改单独输入的验证逻辑和错误位置?

回答

0

你可以把你的代码放在jsfiddle上吗?使用代码很容易识别您面临的确切问题。

同时,试试看!

$("input[value='someUniqueValue']").next('input:text').rules("theExactFieldToValidate",rules) 
0

开始,您可以创建他们这样后更改您的验证设置:

var validator = $("#someForm").validate({ 
    errorPlacement: function (error, elementToValidate) { 
     var $messageElement = $("[id='theExactFieldToValidate'][value='someUniqueValue']"); 
     //error placement logic 
    }, 
    rules: { 
     "theExactFieldToValidate": { 
      required: true, 
      maxlength: 25 
     } 
    } 
}); 

validator.settings.rules.theExactFieldToValidate.required = false;