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

标签 jquery jquery-validate

我正在使用 Jquery 验证插件来验证并提交我的表单。

我希望能够在将表单数据发布到服务器之前从表单数据中删除不必要的表单字段值。

我认为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 对象属性吗?

最佳答案

问题是 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();
}

关于Jquery 验证 - 使用submitHandler 剥离表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3064357/

相关文章:

jQuery 验证器,将任一字段设为必填

jquery - Phalcon getJsonRawBody 无法处理 GET 请求

javascript - 通过单击切换 div 来关闭我的#overlay 和侧菜单?

php - 使用 jQuery 表单验证远程方法验证上传的文件大小

javascript - jQuery-validate 每元素验证不起作用

javascript - 使用 JQuery undefined + null tr​​im(str)!= =""检查数组、对象、字符串的最佳方法是什么?

JQuery Validate动态更改忽略规则

javascript - iPhoto 相册过渡

jquery - Bootstrap 移动过渡

javascript - 检查 JSON 对象是否为 null 的快捷方式