我正在通过 jquery change()
根据另一个下拉列表 02 更改下拉列表 01 的值。我已经在表单中实现了 BootsrapValidation() 。我的问题是,如果下拉列表 01 显示必填字段错误消息,然后我从 jquery 设置下拉列表 01 值。但错误消息仍然存在。
我将 $('#form1').bootstrapValidator();
添加到 change()
的末尾,但没有成功。任何想法真的很感激。
从这里检查 fiddle :https://jsfiddle.net/k2vtkka1/5/
这是我的代码。
$(document).ready(function() {
$('.subSort').change(function(){;
var sub_code = $(this).val();
var code_id = $(this).attr("id");
var code_prefix = sub_code.substring(0, 4);
var id_prefix = code_id.substring(4, 5);
var new_sub_code = code_prefix+'102';
var new_id_no = parseInt(id_prefix)+1;
$('#sub_'+new_id_no).val(new_sub_code);
$('#update_student_form').bootstrapValidator();
});
$('#update_student_form').bootstrapValidator({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
sub_6: {
validators: {
notEmpty: {
message: 'Please select main sub 01 derived'
}
}
}
}
})
.on('success.form.bv', function(e) {
$('#update_student_form').data('bootstrapValidator').resetForm();
e.preventDefault();
var $form = $(e.target);
var bv = $form.data('bootstrapValidator');
// Use Ajax to submit form data
$.post($form.attr('action'), $form.serialize()).done(function(data) {
if (data.trim().length >0)
{
$('#error_message').slideDown({ opacity: "show" }, "slow");
}
else {
$('#success_message').slideDown({ opacity: "show" }, "slow");
}
});
});
最佳答案
终于我发现了问题:-
实际上代码:-
$('#sub_'+new_id_no).val(new_sub_code);
没有更改第二个选择框中的值(尽管它显示该值已更改)。这就是为什么在出现错误后它没有继续进行。
您需要在那里触发 change()
,以便它实际更改值,然后您的验证器获取它。
因此将上面的行更改为:-
$('#sub_'+new_id_no).val(new_sub_code).change();
工作示例:- https://jsfiddle.net/fn0r4nvh/
引用:- change()
关于jquery - 通过 jquery 设置值后 Bootstrap Validator 仍然显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45071993/