Отправка дополнительной информации с помощью удаленной проверки формы JQuery - PullRequest
1 голос
/ 01 декабря 2010

Я пытаюсь удаленно проверить поле, просматривая два разных поля.Проблема в том, что во всех примерах, которые я вижу о том, как выполнить удаленную проверку отправки дополнительных данных, они используют идентификатор другого обрабатываемого поля.Таким образом, пример на странице API проверки JQuery для remote () использует «#username» и отправляет его в дополнение к полю электронной почты.

Моя страница нечетная и имеет несколько одинаковых форм, а число форм на странице является переменным, поэтому я не могу иметь уникальный идентификатор для каждого поля.Есть ли способ узнать, какое поле или форма проверяется / выполняется удаленный вызов?Я попробовал что-то вроде следующего, потому что я думал, что $ (this) - это проверяемое текстовое поле или отдельная форма, но это не так.

number: {
                  required: true,
                  number: true,
                  remote: {
                    url: "confirm.php",
                    data: {
                        toy: function() {
                            return $('select[name="toy"]:selected',this).val();
                        }
                    }
                  }
          }

Спасибо, Джаред

Редактировать: в конце концов я придумал способ заставить его работать.Совет передать форму дал мне идею.

Поскольку у меня было несколько форм на странице, я использовал $ ('form'). Each (function () {$ (this) .validate ({....})});

Поэтому я просто сохранил ссылку на текущую форму с var form = $ (this) перед вызовом validate, а затем в примере, который я дал ранее, у меня был тольковнести небольшое изменение:

data: {
    toy: function() {
        return $('select[name="toy"]',form).val();
    }
}

И теперь каждое поле знает, к какой форме оно принадлежит!

1 Ответ

1 голос
/ 01 декабря 2010

Вы можете присвоить уникальный formId каждой из форм, и всякий раз, когда форма отправляется, вы можете отправить formId вместе с другой информацией из формы, чтобы определить, какая форма отправляется?

Например, в html-коде вашей формы вы можете сделать что-то вроде этого:

Форма № 1: (с идентификатором формы как 1)

<form id="form_1">
Name: <input type='text' id='name_1'> <br>
Address: <input type='text' id='address_1'> <br> 
<input type='button' value='Submit' onclick='validate(1);'>
</form>

Форма № 2: (с идентификатором формы как 2)

<form id="form_2">
Name: <input type='text' id='name_2'> <br>
Address: <input type='text' id='address_2'> <br> 
<input type='button' value='Submit' onclick='validate(2);'>
</form>

В JavaScript, что-то вроде этого:

function validate(formId)
{
   var data = {};
   //Example data that is to be submitted for validation:
   data.name = $("#name_" + formId).val();
   data.address = $("#address_" + formId).val();
   //.. and so on
   data.formId = formId;

   $.post('http://example.com/confirm.php', data, function(result)
     {
       //process the return of the remote validation here, 
       //found in the variable: result
     }
   );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...