我是Jquery验证新手(http://docs.jquery.com/Plugins/Validation)
我是一个动态的表格。我需要知道是否可以验证这样的表单:
<form ...>
<div class="multi-city">
<div class="controls visible">
<label for="id_form-0-city_input">City</label>
<input type="text" name="form-0-city_input" class="city-input ui-autocomplete-input" id="id_form-0-city_input" autocomplete="off">
<p style=""><a href="#" class="delete">Remove</a></p>
</div>
<input type="hidden" id="id_form-0-city" name="form-0-city">
<div class="controls visible">
<label for="id_form-1-city_input">City</label>
<input type="text" name="form-1-city_input" class="city-input ui-autocomplete-input" id="id_form-1-city_input" autocomplete="off">
<p style=""><a href="#" class="delete">Remove</a></p>
</div>
<input type="hidden" id="id_form-1-city" name="form-1-city">
<div class="controls hidden">
<label for="id_form-2-city_input">City</label>
<input type="text" name="form-2-city_input" class="city-input ui-autocomplete-input" id="id_form-2-city_input" autocomplete="off">
<p style=""><a href="#" class="delete">Remove</a></p>
</div>
</div>
</form>
基本上我需要验证“.controls.visible”。按代码:
$('.multi-city .controls.visible')
我应该使用什么策略来验证这些动态字段?
有什么想法吗?
最诚挚的问候,
答案 0 :(得分:0)
不完全确定你在问什么。 默认情况下,此插件将忽略任何隐藏字段。如果这些字段没有真正“隐藏”,那么您需要在创建或“删除”(隐藏?)这些字段时动态编辑规则。进行此类操作的唯一方法是使用已插入插件的方法...
rules('add')
rules('remove')
请参阅所有文档:http://docs.jquery.com/Plugins/Validation#Plugin_methods
要为动态添加的字段添加规则,您可以在创建字段后立即使用the rules('add')
method。
$('[name="Field2"]').rules('add', {
required:true,
messages: {
required: "Custom message."
}
});
或者对于许多新字段,请使用“starts with”选择器和.each
...
$('[name^="Field"]').each(function() {
$(this).rules('add', {
required:true,
messages: {
required: "Custom message."
}
});
});
此方法的简单演示:http://jsfiddle.net/xCY4T/1/
另一种方法是使用the addClassRules method 创建 class
。
$.validator.addClassRules("MyRule", {
required: true
});
然后,当您创建新字段时,请确保它们每个都包含class="MyRule"
以及唯一的name
。
<input type="text" name="Field1" class="MyRule" />
<input type="text" name="Field2" class="MyRule" />
这种方法非常简单,但我认为无法覆盖默认消息。