JQuery Validate - class = "отменить", кнопка отправки останавливает проверку только один раз - PullRequest
1 голос
/ 17 мая 2010

У меня есть форма с кнопками. Мне не нужно отправлять форму, но они (обязательно) представляют собой кнопки отправки. Я дал им класс «отмена», и по первому щелчку они отменяют отправку. желаемый эффект. Тем не менее, любой последующий щелчок возвращается к нормальному состоянию; Отправка формы. Который я не хочу.

Теперь у меня есть несколько постбэков, происходящих при нажатии этих кнопок. Я попытался запустить $ ('form'). Validate ({...}); функция на pageLoad вместо document.ready, но это просто остановило валидацию.

HTML для одной из кнопок:

<input type="submit" class="btncat_deselected cancel" 
id="Pet3btncat" value="" name="Pet3btncat" />

Любые идеи были бы наиболее полезными. Спасибо.

Ответы [ 2 ]

0 голосов
/ 18 мая 2010

Хорошо, используя то, что прокомментировал DA; В итоге я сказал форме НЕ проверять при отправке (onSubmit: false,), а затем создал функцию, чтобы скрыть фактическую кнопку отправки и получить изображение (или могло быть обычной кнопкой), чтобы отправить форму при проверке как истинную :

$(function() {

        $('#Petform #btnNext').hide();
        $('#Petform #NextWrapper').append('<img src="../images/next.gif" alt="submit this form" style="cursor:pointer;" />')
        $('#Petform #NextWrapper img').live('click', function() { 
                  if( $('form').valid() ) {
                        $('#btnNext').click();
                  } 
            });

      });

Таким образом, форма не будет отправлена ​​на сервер, если она недействительна, и обычные кнопки / функции формы возвращаются, если JS отключен.

Спасибо за ответы, ребята.

0 голосов
/ 17 мая 2010

Почему бы просто не иметь функцию отмены?

Измените свою кнопку на что-то вроде

 <input type="button" class="btncat_deselected cancel"  id="Pet3btncat" value="Cancel" />

А затем добавьте слушателя к нему с помощью jQuery

$(function() {
     $("#Pet3btncat").live('click',function() {
            $('#myform.input').html('');
     });
});
...