【问题标题】:Jquery Validation - Strip Form Data with submitHandlerJquery Validation - 使用 submitHandler 剥离表单数据
【发布时间】:2010-06-17 18:12:58
【问题描述】:

我正在使用 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 对象属性吗?

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      相关资源
      最近更新 更多