2014-10-17 2 views
0

Я пытаюсь настроить проверку формы с помощью this jQuery validation plugin. Мой план состоит в том, чтобы загрузить страницу с первоначально настроенным объектом проверки и при необходимости восстановить свою конфигурацию в соответствии с моими потребностями. Но это работает не так, как ожидалось. После инициализации он не принимает новый объект конфигурации. Вот мой код:Почему переопределение переопределения плагина jQuery после инициализации не работает?

<form id="testform"> 
    <input type="text" name="myField" value="" id="myFieldID" class="myFieldClass" placeholder="Type something..." title="Please fill myField" /> 
    <input type="submit" class="validate" name="submit" value="Test"/> 
</form> 

<script> 
var validator = $('#testform').validate({debug: true}); 

validator = $('#testform').validate({ 
    debug: false, 
    rules: { 
     myField : "required" 
    }, 
    messages: { 
     myField : "Hello Other!" 
    } 
}); 
</script> 

После инициализации, когда демпинг объект валидатора он продолжает показывать debug: true и ни правил, ни сообщений. Here is a jsfiddle для этого. Я проверил документы автора вверх и вниз и просмотрел этот форум, но не могу найти удовлетворительный ответ.

Кто-нибудь здесь может научить меня/нам, почему этот способ не работает и как это сделать правильно, пожалуйста?

ответ

0

Похоже, что он был сконструирован только для настройки только один раз. Он имеет метод rules() для изменения правил, если это все, что вы хотите. Тем не менее, он хранит ссылку на валидатор в библиотеке данных jquery. Мы можем очистить эту ссылку с помощью $('#testform').data('validator', null);. Это обманывает скрипт, чтобы снова запустить настройку, поэтому проверьте его, чтобы он не делал ничего сумасшедшего.

http://jsfiddle.net/bva07bk1/

+0

Параметр правила не единственный параметр, мне нужно переопределить. В основном при изменении правил сообщения также должны меняться, поскольку они принадлежат друг другу. Если ваше решение, которое работает, кстати, является единственным способом заставить его управлять моим подходом, чтобы иметь возможность повторного конфигурирования, как правило, с помощью глобального/мастер-подобного валидатора, представляется неправильным с момента его замены на бренд новый экземпляр каждый раз мне нужно изменить конфигурацию. Вот как я тебя достал. Пожалуйста, поправьте меня, если я ошибаюсь! Вы видите более простой и эффективный способ добиться того, чего я хочу? – user1014412

+0

Каковы преимущества мастер-валидатора? Возможно, есть другой подход, который вы могли бы предпринять. –

+0

У меня есть базовый объект конфигурации, который хранится в отдельном файле javascript. После загрузки файла сценария проверки в моем index.php я также загружаю файл validator.config и создаю из него экземпляр проверки. Теперь, каждый раз, когда я загружаю форму через AJAX, я должен обновить настройки валидатора в соответствии с полями формы. Полученная форма содержит небольшой блок сценария для обновления валидатора. Я не хочу загружать валидатор и конфиг в каждый шаблон формы, который я отправляю через AJAX. Я предпочел бы сделать это один раз и обновить его в соответствии с новыми требованиями. Это план ... по крайней мере. Любая лучшая идея? – user1014412

Смежные вопросы