Jquery验证 - 使用submitHandler剥离表单数据

时间:2010-06-17 18:12:58

标签: jquery jquery-validate

我正在使用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”]。值来测试它们。

任何人都知道为什么我无法删除HTMLFormElement对象属性?

1 个答案:

答案 0 :(得分:2)

问题是delete意味着从对象中删除属性,而您尝试从DOM中删除元素。在回调函数中,form是一个DOM元素,因此您无法通过删除删除其子元素。您可以尝试在表单元素上使用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();
}