Bạn có thể khắc phục điều này bằng cách thêm các lớp "chzn-done" mà không mất tài sản "bỏ qua" để "validate.settings":
var settings = $.data($('#myform')[0], 'validator').settings;
settings.ignore += ':not(.chzn-done)';
example
HTML:
<form method="post" id="form1" action="">
<fieldset>
<legend>Login Form</legend>
<div>
<label>datos</label>
<select name="data-select" title="data-select is required" class="chzn-select {required:true}" style="width:150px;">
<option></option>
<option value="1">uno</option>
<option value="2">dos</option>
</select>
</div>
<div>
<label for="phone">Phone</label>
<input id="phone" name="phone" class="some styles {required:true,number:true, rangelength:[2,8]}" />
</div>
<div>
<label for="email">Email</label>
<input id="email" name="email" class="{required:true,email:true}">
</div>
<div class="error"></div>
<div>
<input type="submit" value="enviar datos"/>
</div>
</fieldset>
</form>
JS:
$(function() {
var $form = $("#form1");
$(".chzn-select").chosen({no_results_text: "No results matched"});
$form.validate({
errorLabelContainer: $("#form1 div.error"),
wrapper: 'div',
});
var settings = $.data($form[0], 'validator').settings;
settings.ignore += ':not(.chzn-done)';
$('form').each(function(i, el){
var settings = $.data(this, 'validator').settings;
settings.ignore += ':not(.chzn-done)';
});
});
Nguồn
2012-06-27 15:06:26
Câu trả lời có thể được tìm thấy, có thể giúp ích nếu bạn gặp vấn đề tương tự: 'Đảm bảo trình xác thực không bỏ qua: các yếu tố bị ẩn. Bản gốc '' bị ẩn khi được chọn áp dụng trình đơn thả xuống của nó cho DOM.' – PhilMarc
Tôi nghĩ rằng stackoverflow thích nếu bạn đăng giải pháp mà bạn tìm thấy dưới dạng câu trả lời và chấp nhận câu trả lời để câu hỏi hiển thị như được trả lời và được chấp nhận trang tìm kiếm. –
Tôi đã cố gắng nhưng với tư cách là người dùng mới, tôi chưa đáng tin cậy và không thể thực hiện điều đó: ( – PhilMarc