jQuery Form Plugin Передача в исходном виде - PullRequest
0 голосов
/ 22 декабря 2011

Я использую плагин формы jQuery и пытаюсь выяснить, почему я не могу использовать метод find в функции успеха.

           $('#signup-form').ajaxForm({
           beforeSubmit: function (arr, $form, options) {
               $form.find("input[name=email]").css('width', '170');
               $form.find("input[type=submit]").val('Subscribing...').attr('disabled', 'true');
           },
           target: "#signup-form-wrap",
           dataType: 'json', 
           success: function (data, $form) {
               $form.find("input[type=submit]").val('Go!').css('width', '200');

           }
       });

Почему-то я получаю эту ошибку:

Uncaught TypeError: Object success has no method 'find'

Когда я оповещаю форму $, ее значением является просто строка «success». Это работает в beforeSubmit, однако. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2011

Из документации плагина jQuery Form: http://jquery.malsup.com/form/#options-object

success

Функция обратного вызова, вызываемая после отправки формы.Если предусмотрена функция обратного вызова «success», она вызывается после того, как ответ был возвращен с сервера.Передаются следующие аргументы:

1.) Значение responseText или responseXML (в зависимости от значения параметра dataType).
2.) statusText
3.) xhr (или jQuery-обернутый элемент формы, если используется jQuery <1.4) <br>4.) jQuery-обернутый элемент формы (или неопределенный, если используется jQuery <1.4) <br>

Значение по умолчанию: null

Основываясь на этой информации, вы можете попробовать следующее:

* обратите внимание на изменения параметров, отправляемых на успех

$('#signup-form').ajaxForm({
  beforeSubmit: function (arr, $form, options) {
    $form.find("input[name=email]").css('width', '170');
    $form.find("input[type=submit]").val('Subscribing...').attr('disabled', 'true');
  },
  target: "#signup-form-wrap",
  dataType: 'json', 
  success: function (data, statusText, xhr, $form) {
    $form.find("input[type=submit]").val('Go!').css('width', '200');
  }
});
0 голосов
/ 22 декабря 2011

Согласно документации вторым параметром, передаваемым функции успеха, является statusText, который звучит как то, что вы регистрируете. Это параметры, передаваемые функции успеха согласно документации:

1.) responseText or responseXML value (depending on the value of the dataType option).
2.) statusText
3.) xhr (or the jQuery-wrapped form element if using jQuery < 1.4)
4.) jQuery-wrapped form element (or undefined if using jQuery < 1.4)

Так что, я думаю, ваша функция успеха будет выглядеть примерно так:

success: function (data, status, xhr, $form) {
   $form.find("input[type=submit]").val('Go!').css('width', '200');    
}
...