自定义验证返回true || false,但不显示错误样式和消息

时间:2016-06-03 19:21:36

标签: twitter-bootstrap validation

感谢任何帮助!

  1. 插件页面:http://1000hz.github.io/bootstrap-validator/
  2. 当提交表单没有验证时,但自定义验证是 正确返回(打开控制台以查看正在发生的事情)
  3. 检查时,某些选项正在验证确定,但是多余(2 错误消息)
  4. HTML

    <div class="col-md-4">
      <form>
        <div class="form-group has-feedback">
          <select id="variationType[]" name="variationType[]" class="multiple-select form-control" data-minselected="1" data-placeholder="Select one or more options" multiple required>
            <option value="1">Option 1</option>
            <option value="2">Option 2</option>
            <option value="4">Option 3</option>
            <option value="8">Option 4</option>
          </select>
          <small class="help-block with-errors"></small>
          <span class="form-control-feedback" aria-hidden="true"></span>
        </div>
    
        <button class="btn btn-primary btn-block">Valid</button>
      </form>
    </div>
    

    JS

    $('.multiple-select').multiselect({
      buttonContainer: '<div class="multiselect-group"></div>',
      buttonClass: 'form-control',
      nonSelectedText: !$(this).attr('data-placeholder') ? 'Selecionar' : $(this).attr('data-placeholder'),
      numberDisplayed: 1
    });
    
    $.fn.validator.Constructor.INPUT_SELECTOR = ':input:not([type="submit"], button):enabled';
    $('form').validator({
      delay: 200,
      focus: false,
      feedback: {
        success: 'glyphicon glyphicon-ok-sign',
        error: 'glyphicon glyphicon-exclamation-sign'
      },
      custom: {
        minselected: function($el) {
                console.log(!!$.trim($el.val()));
          return !!$.trim($el.val());
        }
      },
      errors: {
        minselected: "Select one or more options"
      }
    });
    

    小提琴示例: https://jsfiddle.net/9ts4nvhw/4/

    非常感谢

1 个答案:

答案 0 :(得分:1)

这可能是最新验证器代码中的新语法(我遇到验证器v0.11.9)。

自定义验证器应返回的是错误消息,而不是字段是否有效(true / false)。根本不再需要errors对象(虽然我猜你可以包含它 - 似乎没有什么区别)。

例如:

$('form').validator({
    delay: 200,
    focus: false,
    feedback: {
        success: 'glyphicon glyphicon-ok-sign',
        error: 'glyphicon glyphicon-exclamation-sign'
    },
    custom: {
        minselected: function($el) {
              console.log(!!$.trim($el.val()));
              return !!$.trim($el.val()) && "Select one or more options";
        }
    }
});
相关问题