2009-09-30 2 views
0

У меня есть страница, которая имеет контактную форму скользить вниз при нажатии на ссылку (т.е. это DIV на странице, которая отображается с .slideDown («медленный»)JQuery плагин проверки с event.preventDefault()

У меня есть плагин проверки jQuery, работающий в контактной форме, только я заметил, что когда я тестировал, у меня был event.preventDefault(), закомментирован. В финальной версии я хочу, чтобы это было раскомментировано, потому что я не хочу, чтобы страница перенаправлять или даже размещать при нажатии на Submit.

у меня есть кнопка Submit, посылающая почта Ajax для отправки по электронной почте. Как я могу сохранить эту функциональность и по-прежнему использовать Validate плагин JQuery в?

ответ

1

Вместо того, чтобы устанавливать действие на форму $.bind() a click обработчик формы формы отправки и использовать $.post(), чтобы сделать запрос. Несколько слов осторожности. Во-первых, вы должны, вероятно, установить действие в форме и позволить ему перенаправлять по умолчанию для людей, у которых отключен Javascript, затем используйте jQuery для удаления действия из формы и до $.bind() обработчика click к кнопке отправки при загрузке страницы. Во-вторых, в моем коде, когда я говорю использовать оповещение или какое-либо другое доступное уведомление, я имею в виду использование метода alert() или если вы используете элемент dom для того, чтобы содержать уведомление, убедитесь, что вы используете атрибуты живого региона и ролей , чтобы сделать уведомление доступным к вспомогательным устройствам.

function onFormSubmit(event) 
{ 
     $.post('http://url.to.your.service', 
      $('#theFormId').serialize(), 
      function(data, textStatus) 
      { 
        switch(textStatus) 
        { 
         // Alert or some other 
         // accessible notification of success/failure 
        } 
      } 
    ); 
} 

EDIT: Мне действительно нужно время от времени читать вопросы. Таким образом, вы уже используете кнопку отправки для отправки запроса AJAX. Возможно, мои комментарии к юзабилити будут полезны для вас, поэтому я оставлю эту часть ответа. Если вы установите действие на javascript:null(0), # или установите цель в скрытый iframe, это также должно работать.

+0

Я на самом деле даже не хотел добавлять щедрость к этому вопросу, поскольку он больше не имеет отношения ко мне. О, хорошо. Бесплатные баллы для вас! –

+0

Ha. Ну, шон @ Пелоус ... –