美文网首页
bootstrap-datepicker与bootstrapVa

bootstrap-datepicker与bootstrapVa

作者: 红烧排骨饭 | 来源:发表于2018-06-27 01:20 被阅读0次

    首先给出 HTML 和 JS 的代码

    HTML

    <form id="form-data" role="form" action="${pageContext.request.contextPath}/admin/movie/add" method="post" enctype="multipart/form-data">
        <div class="box-body">                
            <div class="form-group">
                <label for="input_release_time">上映时间</label>
                <input name="release_time" type="text" class="form-control" id="input_release_time"
                       placeholder="请选择上映时间!">
            </div>
        </div>
        <div class="box-footer">
            <button type="submit" class="btn btn-primary">添加</button>
        </div>
    </form>
    

    JS

    $("#input_release_time").datepicker({
        autoclose: true,
        todayHighlight : true,
        format: 'yyyy-mm-dd',
        language: 'zh-CN'
    });
    
    $('#form-data').bootstrapValidator({
        fields: {
            release_time: {
                validators: {
                    notEmpty: {
                        message: '上映时间不能为空'
                    }
                }
            }
        }
    });
    

    我给上映时间添加的非空验证

    如果没有填写上映时间,直接点击提交按钮,会显示提示信息

    于是,点击上映时间的 input,把时间填入


    但是没有触发校验,表单验证仍然不通过

    解决思路

    需要在 bootstrap-datepicker 关闭的时候,重新触发一下 bootstrapValidator 的校验

    代码

    把 bootstrap-datepicker 的配置代码改一下,增加一个 datepicker 隐藏时的回调

    $("#input_release_time").datepicker({
        autoclose: true,
        todayHighlight : true,
        format: 'yyyy-mm-dd',
        language: 'zh-CN'
    }).on('hide',function(e) {
        $('#form-data').data('bootstrapValidator')
            .updateStatus('release_time', 'NOT_VALIDATED', null)
            .validateField('release_time');
    });
    

    updateStatus 方法的作用是更新给定字段的校验状态

    validateField 方法的作用是触发给定字段的校验

    文档

    参考

    相关文章

      网友评论

          本文标题:bootstrap-datepicker与bootstrapVa

          本文链接:https://www.haomeiwen.com/subject/pwpvyftx.html