2010-03-02 5 views
2

Это простой вопрос. У меня есть форма, которая проверяется с помощью функции .validate jquery.Подача формы с использованием функции .validate jQuery

Проблема заключается в том, что проверка только, кажется, работает, когда я отправить форму с помощью: <input type='submit' />

Однако, я хотел бы использовать свои собственные кнопки, используя вместо этого: <button type="submit">click to submit</button> .... или использовать что-то вроде .. . <a onclick="submitFunction()">click to submit</a>

Эти два последних варианта, однако, не активируют функцию проверки jquery. Есть ли способ обойти это? Спасибо за помощь в продвижении!

ответ

5

jQuery Validation plugin привязан к submit event в jQuery. Если вы хотите вызвать это из любого места (т. Е. Любого другого обработчика событий), вам придется вручную вызвать .submit(), что приведет к возникновению проверки.

Обратите внимание, что после вызова .validate(), чтобы настроить проверку на вашей форме, вы можете сохранить Validator экземпляр он возвращает и вызовите form method на ней, если вы хотите выполнить проверку отдельно от представления формы.

+0

спасибо Casper .. вопрос для вас, что вы подразумеваете под «Если вы хотите вызвать это из любого места (т.е. любого другого обработчика событий), вам придется вызвать submit вручную»? Я пробовал вручную отправлять через javascript, а также тип кнопки «отправить», но он, похоже, не вызывает метод проверки. Есть что-то еще, что мне не хватает? – Rees

+1

jQuery ('# formId'). Submit(); То, как вы можете отправить его вручную. Я опубликовал ответ ниже. – Mark

+0

Я пробовал вручную отправлять через jquery $ ('# myform'). Submit(); - и теперь он проверяет, но он сразу же отправляется. Даже если есть ошибки формы, что заставляет меня думать, что опция submitHandler не распознается с помощью $ ('# myform'). submit(); - Поскольку submitHandler предотвратит отправку формы с ошибками. Есть что-то еще, что мне не хватает? – Rees

1

Что вам нужно сделать в пользовательских представить функцию следующим образом

jQuery('#formId').submit(); 

Вы можете создать свою собственную проверку и, если форма является действительным использование выше метод представить его. Это то же самое, что нажать кнопку отправки в форме. #formId - это идентификатор, предоставленный вашей формой. Существует несколько других способов ссылки на форму.

0

Если все, что вам нужно сделать, это изменить то, что подать говорит кнопку, вы можете использовать

<input type="submit" value="click to submit" /> 

Update Для работы с плагином проверки, это действительно то, что я хотел бы предложить. Если вы хотите сделать что-нибудь еще, нажав эту кнопку, вы можете использовать submitHandler в качестве опции: http://docs.jquery.com/Plugins/Validation/validate#toptions.

3

Насколько я знаю, JQuery не метод «Validate», но в любом случае, для того, чтобы использовать элементы для отправки формы просто привязать представить событие:

$('#formid').submit(function(){ 
    // validate form 
    ... 
    // if validation fails, return false; 
}); 
+0

Он использует это: http: //plugins.jquery.com/project/validate –

+0

Я понял, спасибо :) –

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