jquery - 通过 jquery 设置值后 Bootstrap Validator 仍然显示错误消息

标签 jquery validation twitter-bootstrap-3 bootstrapvalidator jqbootstrapvalidation

我正在通过 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/

相关文章:

CSS 响应图像最大宽度或最大高度

javascript - Jquery 单击函数不适用于弹出框内的按钮

javascript - Ajax POST 函数

javascript - 将CSS应用于动态创建的奇数/偶数行

javascript - 如何检测鼠标是否移动到窗口的某个坐标上,JavaScript/Jquery?

jquery 验证 onchange

java - 是否可以在基于 Spring 的控制台应用程序中使用 @Valid 注释?

php - Laravel 验证检查数组大小的最小值和最大值

twitter-bootstrap - 跳过第一项,然后每隔 x 重复一次规则

javascript - 使用 JQuery 和 AJAX/-Servlet 发送表单并停留在同一页面上