【问题标题】:BootStrapValidator - form not resetting when using excludedBootStrapValidator - 使用排除时表单不重置
【发布时间】:2016-11-01 04:54:29
【问题描述】:

我正在使用 BootstrapValidator,但在重置表单时遇到问题。当我将 ":hidden" 放在排除列表中时(我有隐藏的字段,当它们不显示时我需要跳过验证),表单将不会重置。我在下面包含了图片和更多文字:

 $('#frmLifecycleAddEdit').bootstrapValidator({
    framework: 'bootstrap',
    excluded: [':disabled', ':hidden'],
    feedbackIcons: {
        valid: 'glyphicon glyphicon-ok',
        invalid: 'glyphicon glyphicon-remove',
        validating: 'glyphicon glyphicon-refresh'
    },
    fields: {
        txtStepName: {
            validators: {
                notEmpty: {
                    message: 'A valid step name is required.'
                }
            }
        },
        ddlCMCreateGroup: {
            validators: {
                notEmpty: {
                    message: 'CM creation group is required.'
                }
            }
        },
        ddlAssignGroup: {
            validators: {
                notEmpty: {
                    message: 'Assign group is required.'
                }
            }
        },
        ddlExpireGroup: {
            validators: {
                notEmpty: {
                    message: 'Expire group is required.'
                }
            }
        },
        txtDaysToExpire: {
            validators: {
                notEmpty: {
                    message: 'Expire days is required.'
                }
            }
        },
        txtStepNumber: {
            validators: {
                notEmpty: {
                    message: 'Step number is required.'
                }
            }
        }
    }
});

//View/Edit button click
$("#tblLifecycle tbody").on('click', 'button', function () {
    var oTable = $('#tblLifecycle').DataTable();
    var data = oTable.row($(this).parents("tr")).data();

    $('#frmLifecycleAddEdit').bootstrapValidator('resetForm', true);

    if ($('#ddlLifecycleName').val() == 'Accident') {
        $('#mtAddEditStep').text('Edit Accident Step');
        SetupEditAccident(data);
    } else {
        $('#mtAddEditStep').text('Edit Countermeasure Step');
        SetupEditCountermeasure(data);
    }
});

我正在尝试在按钮单击期间重置表单。

 $("#tblLifecycle tbody").on('click', 'button', function () {
    var oTable = $('#tblLifecycle').DataTable();
    var data = oTable.row($(this).parents("tr")).data();

    $('#frmLifecycleAddEdit').bootstrapValidator('resetForm', true);

    if ($('#ddlLifecycleName').val() == 'Accident') {
        $('#mtAddEditStep').text('Edit Accident Step');
        SetupEditAccident(data);
    } else {
        $('#mtAddEditStep').text('Edit Countermeasure Step');
        SetupEditCountermeasure(data);
    }
});

有人知道发生了什么吗?当我删除 ':hidden' 属性时,它可以工作,但我需要在其中允许在所有字段都不存在时进行验证。

提前致谢!

【问题讨论】:

    标签: javascript jquery twitter-bootstrap-3 bootstrapvalidator


    【解决方案1】:

    如果你不显示控制,那么你不能重置,所以 您需要启用/禁用验证来解决这个难题。

    首先隐藏您的输入。 在验证设置中设置 excluded: ':disabled',就像验证隐藏字段一样...

    if (condition)
    {            
        $("#mytextbox").css("display", "block");
        $('#Form').data('bootstrapValidator').enableFieldValidators('mytextbox', true);
    } else 
    {
        $("#mytextbox").css("display", "none");
        $('#Form').data('bootstrapValidator').enableFieldValidators('mytextbox', false);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-01
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      相关资源
      最近更新 更多