作为更大的jQuery验证表单的一部分,我有一些输入只需要按下按钮进行验证。例如,将项目输入列表:
<form class="validate">
// ......
validated form elements on submit
// ......
<select multiple="multiple" id="itemList" size="5"><select>
<input type="text" id="newItem" name="newItem"/>
<button type="button" id="addItem">add</button>
// ......
validated form elements on submit
// ......
<button type="submit">Submit Form</button>
</form>
<script>
$(document).on("click", "#addItem", function(e){
if( $("form.validate").validate({}).element("#newItem") ){
//Code to add valid item to the list
}
});
</script>
我不想使用输入的类作为分配规则的方法,因为这意味着它将作为主窗体的一部分进行验证,但是如果我以$([form])的形式调用验证。验证({rules ..})。element([element])它们被忽略。
我能让它工作的唯一方法是在验证之前使用规则(“添加”,规则),然后使用规则(“删除”,规则)。
<script>
$(document).on("click", "#addItem", function(e){
$("#newItem").rules("add", {
required: true,
minlength: 2,
messages: {
required: "Required input",
minlength: jQuery.format("Please, at least {0} characters are necessary")
}
});
$("form.validate").validate().element("#newItem");
$("#newItem").rules("remove");
});
</script>
然而,这似乎相当不优雅,所以如果有人能告诉我哪里会出错,那将是伟大的:)
答案 0 :(得分:0)
<script>
$(document).on("click", "#addItem", function(e){
var _validateSingleField=$('form.validate').validate().element('#newItem');
if(_validateSingleField){
//Code to add valid item to the list
}
});
</script>