这是我的工作:
https://jsfiddle.net/eadmsrqz/
$( document ).ready( function () {
$('#submit').one('click', function() {
$( "#munizioni" ).validate( {
rules: {
},
messages: {
"calibro[]": {
required: "Per ogni quantità inserita deve essere selezionato un calibro!<br>"
},
"quantita[]": {
required: "Per ogni calibro selezionato deve essere inserita una quantità!<br>"
}
},
errorElement: "em",
errorPlacement: function ( error, element ) {
error.addClass( "invalid-feedback" );
if ( element.prop( "type" ) === "checkbox" ) {
error.insertAfter( element.next( "label" ) );
} else {
error.appendTo( '#errordiv' );
}
},
highlight: function ( element, errorClass, validClass ) {
$( element ).addClass( "is-invalid" ).removeClass( "is-valid" );
},
unhighlight: function ( element, errorClass, validClass ) {
$( element ).addClass( "is-valid" ).removeClass( "is-invalid" );
}
});
$('[name^="calibro"]').each(function() {
$(this).rules('add', {
required: function(element){
return $(element).parent().find("input[type=text]").val() != "";
}
});
});
$('[name^="quantita"]').each(function() {
$(this).rules('add', {
required: function(element){
return $(element).parent().find("select[name^=calibro]").val() != "";
}
});
});
});
});
按下+按钮->创建另一个文本+选择输入。
验证规则是:并非所有字段都是必填字段,但是如果我填写数量,则必须选择口径,反之亦然。
问题:如果我总共创建5对数量+口径(例如),并且只在所有口径中插入,只有第一个是错误的,而不是全部。因此,如果我纠正了第一个错误,而让其他错误不解决,则系统会让我继续。如果我对数量也做同样的事情。
但是我都用过.....
我该如何解决?
非常感谢