如何在Bootstrap验证中创建自定义验证

时间:2014-11-12 06:25:56

标签: jquery html spring jqbootstrapvalidation

我的目标是验证特定的文本字段,其中此字段依赖于其他元素的值。

例如,我有选择标签和输入文字标签,

当select标签具有选定值时,

需要输入文本。

希望有人可以提供帮助。

5 个答案:

答案 0 :(得分:4)

看看

  

http://bootstrapvalidator.com/

在我们的项目中,我们正在使用Backbone验证器,与Bootstrap集成

  

https://github.com/thedersen/backbone.validation

整合样本Backbone.validation&自举

[jsfiddle.net/thedersen/c3kK2/][1]

如果您使用的是Backbone:)

对于 bootstrapvalidator ,有一个回调方法进行验证

http://bootstrapvalidator.com/validators/callback/

来自示例:

  <input type="text" class="form-control" name="captcha"
                data-bv-callback="true"
                data-bv-callback-message="Wrong answer"
                data-bv-callback-callback="checkCaptcha" />

和JS

function checkCaptcha(value, validator) {
    // Determine the numbers which are generated in captchaOperation
    var items = $('#captchaOperation').html().split(' '),
        sum   = parseInt(items[0]) + parseInt(items[2]);
   return value == sum;
};

$(document).ready(function() {
    // Return a random number between min and max
    function randomNumber(min, max) {
       return Math.floor(Math.random() * (max - min + 1) + min);
    };

    // Generate a sum of two random numbers
    function generateCaptcha() {
        $('#captchaOperation').html([randomNumber(1, 100), '+', randomNumber(1, 200), '='].join(' '));
    };

    generateCaptcha();

    $('#callbackForm').bootstrapValidator();
});

您可以使用它实现任意验证。

因此,您的验证可以通过一些全局函数来实现

使用HTML

  <input type="text" class="form-control" name="captcha"
                data-bv-callback="true"
                data-bv-callback-message="Wrong answer"
                data-bv-callback-callback="specialValidation" />

使用JS

 function specialValidation(value, validator) {
    // Determine the numbers which are generated in captchaOperation
    var items = $('#otherField').txt();
    return value == sum;
};

您需要具有元素属性的创意,才能正确链接相关元素。

答案 1 :(得分:1)

使用回调进行自定义验证 你可以在回调上使用任何验证,比如javascript validation.Need发送false或true。

pwd:
{
    validators:
    {
        notEmpty:
        {
            message: 'The password is required and cannot be empty'
        },
        callback:
        {
            message: 'The password is not valid',
            callback: function(value, validator, $field)
            {
                if (value === '')
                {
                    return true;
                }
            }
        }
    }
}

答案 2 :(得分:0)

您可以这样做,在调用bootstrap验证之前,如果select选择了值,则只需将data-required属性添加到input元素,否则不添加该属性。希望这对你有帮助。

答案 3 :(得分:0)

答案 4 :(得分:-1)

使用以下代码, onchange jquery函数用于此目的。

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>change demo</title>
  <style>
  div {
    color: red;
  }
  </style>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<select name="sweets" multiple="multiple">
  <option>Chocolate</option>
  <option selected="selected">Candy</option>
  <option>Taffy</option>
  <option selected="selected">Caramel</option>
  <option>Fudge</option>
  <option>Cookie</option>
</select>
<div></div>

<script>
$( "select" )
  .change(function () {
    var str = "";
    $( "select option:selected" ).each(function() {
      str += $( this ).text() + " ";
    });
    $( "div" ).text( str );
  })
  .change();
</script>

</body>
</html>