Twitter bootstrap 引导验证程序自定义函数仅在销毁后出现。这是预期的行为吗?

Twitter bootstrap 引导验证程序自定义函数仅在销毁后出现。这是预期的行为吗?,twitter-bootstrap,validation,Twitter Bootstrap,Validation,我正在使用这个插件,并注意到它有一个奇怪的行为 进行此测试以确认我的怀疑: QUnit.test('call custom validator', function (assert) { var form = '<form>' + '<div class="form-group has-error">' + '<input type="text" value="example" data-validation1 data-validatio

我正在使用这个插件,并注意到它有一个奇怪的行为

进行此测试以确认我的怀疑:

  QUnit.test('call custom validator', function (assert) {

      var form = '<form>'
  + '<div class="form-group has-error">'
  + '<input type="text" value="example" data-validation1 data-validation2>'
  + '<input type="text" value="mobilephone" data-requiredone="phone">'
  + '<div class="help-block with-errors">Fill at least one</div>'
  + '</div>'
  + '</form>'

      var $form = $(form)
        .appendTo('#qunit-fixture')
        .validator()

      var options1 = {
          custom: {
              validation1: function (element) { }
          }
      }

      var options2 = {
          custom: {
              validation2: function (element) { }
          }
      };

      var form = $('form').validator(options1)

      var validator = $(form).data("bs.validator")

      assert.ok(validator.options.custom.validation1 && validator.options.custom.validation1.toString() == options1.custom.validation1.toString(), 'validator.options.custom contains validation1')

      $('form').validator('destroy')

      $('form').validator(options2)

      validator = $("form").data("bs.validator")

      assert.ok(validator.options.custom.validation2 && validator.options.custom.validation2.toString() == options2.custom.validation2.toString(), 'validator.options.custom contains validation2')
  })
QUnit.test('call custom validator',function(assert){
变量形式=“”
+ ''
+ ''
+ ''
+“至少填写一个”
+ ''
+ ''
var$form=$(form)
.appendTo(“#qunit fixture”)
.validator()
变量选项1={
自定义:{
validation1:函数(元素){}
}
}
var选项2={
自定义:{
validation2:函数(元素){}
}
};
var form=$('form').validator(选项1)
var验证器=$(表单).data(“bs.validator”)
assert.ok(validator.options.custom.validation1&&validator.options.custom.validation1.toString()==options1.custom.validation1.toString(),'validator.options.custom包含validation1')
$('form')。验证器('destroy'))
$('form').validator(选项2)
验证器=$(“格式”).data(“bs.validator”)
assert.ok(validator.options.custom.validation2&&validator.options.custom.validation2.toString()==options2.custom.validation2.toString(),“validator.options.custom包含validation2”)
})
第一个断言通过,第二个断言不通过

还发现“销毁”是一种变通方法,更让我头疼的是

我也把这个问题贴在了项目的首页上


有人能告诉我这是否正确吗?

插件创建者的回应:

您已经在没有使用自定义验证程序的情况下初始化了插件

  var $form = $(form)
    .appendTo('#qunit-fixture')
    .validator()
如果再次调用.validator(),插件不会使用新选项重新初始化自身。这在将来可能会改变

答案是肯定的,是预期的行为