Bootstrap валидатор пользовательская функция присутствует только после уничтожения. Ожидается ли такое поведение?

Я работал с bootstrap-валидатором и заметил странное поведение плагина.

Сделал этот тест, чтобы подтвердить то, что я подозревал:

  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')
  })

Результаты первого assert проходит второй не.

А также узнать, что’ destroy ‘ — это своего рода обходной путь, что беспокоит меня еще больше.

Я также разместил этот вопрос на github проекта.

Может ли кто-нибудь сказать мне, если это правильно?

1 ответ

  1. ответ от Создателя от плагина :

    Вы уже инициализировали плагин без пользовательского валидатора с

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

    Плагин не повторяет инициализацию с новыми опциями, если вы звоните .validator () снова. Это может измениться в будущем.

    ответ да, это ожидаемое поведение.