Проверка Jquery - удаление данных формы с submitHandler - PullRequest
2 голосов
/ 17 июня 2010

Я использую плагин Jquery Validation для проверки и отправки моих форм.

Я хочу иметь возможность удалять ненужные значения полей формы из данных формы, прежде чем они будут опубликованы на сервере.

Я подумал, что submitHandler будет лучшим местом для этого - вот пример моего кода:

submitHandler: function(form) {
if (form.elements["billddress2"].value == "Suite/Apt"){
delete form.elements["billddress2"];    
}

if (form.elements["mobile"].value == "Mobile Number"){
delete form.elements["mobile"];
}

if (form.elements["questionid_46"].value == "Guest Email"){
delete form.elements["questionid_46"];
}

form.submit();
}

Проблема в том, что данные все еще передаются. Я знаю, что у меня есть нужные свойства, так как я проверил их, используя form.elements ["name"]. Value.

Кто-нибудь знает, почему я не могу удалить свойства объекта HTMLFormElement?

1 Ответ

2 голосов
/ 17 июня 2010

Проблема в том, что delete предназначен для удаления свойств из объектов, тогда как вы пытаетесь удалить элементы из DOM. В вашей функции обратного вызова form является элементом DOM, поэтому вы не можете удалить его дочерние элементы с помощью delete. Вы можете попробовать использовать remove на элементах формы (вам нужно сначала превратить их в объекты jQuery с $), например:

submitHandler: function(form) {
  var form = $(form);

  if (form.elements["billddress2"].value == "Suite/Apt"){
    $('input[name="billddress2"]', form).remove();
  }

  if (form.elements["mobile"].value == "Mobile Number"){
    $('input[name="mobile"]', form).remove();
  }

  if (form.elements["questionid_46"].value == "Guest Email"){
    $('input[name="questionid_46"]', form).remove();
  }

  form.submit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...