2011-06-21 2 views
0

Я пытаюсь выяснить, как выполнить динамическую проверку формы с помощью jquery и плагина проверки jquery. Я довольно новичок в jquery и JS в целом.Проверка динамической формы (не только полей)

Я выяснил, как получить подтверждение, когда я нажимаю submit (используя submitHandler). Однако мне нужно POST через ajax, а не по-своему. Поэтому мне нужно предотвратитьDefault, и я, похоже, не могу. Собственный путь для меня - это когда вы нажимаете submit, действие происходит. Я не хочу, чтобы действие произошло, поскольку я пытаюсь сделать это через $ .ajax ({...}) ;.

Если я положил валидацию в $ ('# form'). Live ('click', function (e) {...}), теперь я могу отправлять через ajax, однако проверки не происходит. У меня есть все внутри $ (document) .ready (function() {...} ;.

Как я могу получить динамическую форму, проверенную внутри метода live ('click')? для вызова validate() при добавлении формы. Я добавляю всю форму с помощью щелчка по объекту и добавляю к дочернему объекту.

В любом случае (в submitHandler или в режиме live ('click'),) меня устраивает, но я не могу показаться, чтобы выяснить, так или иначе.

Надеется, что это достаточно информации, но если я не буду рад предоставить больше. небольшой фрагмент ниже submitHandler.

$("#form-" + $(this).attr('id')).validate({ 
    submitHandler: function(form) { 
     this.preventDefault(); 
     // My ajax function below (submitForm); 
     submitForm(this); 
     alert('wee'); 
    } 
+0

OK, поэтому я исправил это. Я использовал неправильный кровавый объект ... 'code submitForm (this)' должно быть: 'code submitForm (form);' ПОСЛЕ того, как я изменил строку проверки и добавила дополнительную строку перед строкой проверки: 'code var form =" # form- "+ $ (this) .attr ('id'); $ (форма) .validate ({ ' моя последняя версия: ' код форма вар = "# form-" + $ (это) .attr ('ID'); $ (форма) .validate ({ submitHandler: функция (форма) {// только запускается, когда действует SubmitForm (форма); } }); ' – AlienResidents

ответ

0

Вы пришли посмотреть на jQuery (ajax) form plugin?

+0

Я думаю, что ваше решение работало лучшее Спасибо, я изменил его немного, и показал, как я. что я должен был как комментарий к моему вопросу. Спасибо. – AlienResidents

+0

Нет проблем. Приятно помочь. – Betamos

2

Вы не используете submitHandler правильно. Попробуйте это:

$("#myform").validate({ 
     submitHandler: function(form) { 
     form.submit(); 
     } 
}); 

И затем переопределить функцию представить в виде:

$('#myform').submit(function() { 
    $.post(url, $(this).serialize(), function(response) { 
    //do something with the AJAX response 
    }); 

    return false; 
}); 

возвращения ложным; в конце будет препятствовать отправке формы по умолчанию.

+0

Проблема у вас здесь в том, что вы не читаете мою проблему (я думаю). знайте имя формы до тех пор, пока Я загружаю его через ajax, поэтому, хотя это будет отлично работать со статической формой, я не использую статические формы. Я попытался построить $ (..). Submit ({}); каждый раз, когда я добавляю строку, но это не работает правильно. 'code var form =" # form- "+ $ (this) .attr ('id'); $ (форма) .submit (функция() { submitForm (form); }).validate ({ submitHandler: function (form) { form.submit(); } ' – AlienResidents

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