jquery:如何在提交之前从表单中删除空白字段?

标签 jquery form-submit

我有一个页面,上面有一组表单,用于 API 测试。由于不值得解释的原因,我通常不想在向服务器提交的内容中包含空字段。如何在提交之前删除数据中的空白字段?

例如,如果我有一个包含两个字段(foo 和 bar)的表单,并且用户将 bar 留空,我希望服务器看到提交,就好像唯一的字段是 foo 一样。

我的第一次尝试涉及使用 jquery 循环遍历字段

$("form").submit(function() {
    $(this).children(':input').each(...)
}

并删除该字段。但是a)不起作用,b)似乎会从页面上的可见表单中删除该字段,这不是我想要的。

另一种方法可能是循环遍历字段并使用具有除“”之外的值的字段手动构造提交字符串。那行得通吗?还有更好的想法吗?

最佳答案

一种方法是在这些字段上设置“disabled”属性,这会阻止它们的值被序列化并发送到服务器:

$(function()
{
    $("form").submit(function()
    {
        $(this).children(':input[value=""]').attr("disabled", "disabled");

        return true; // ensure form still submits
    });
});

如果您有客户端验证,您还需要在验证失败时重新启用这些字段:

$(':input').removeAttr("disabled");

编辑:修复了错误

关于jquery:如何在提交之前从表单中删除空白字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5904437/

相关文章:

javascript - Chrome : On pressing Enter on a Textbox of a <form> Submits page without calling onClick of submit button on that form

reactjs - 为什么 e.preventDefault() 在 React 中不起作用?

javascript - 如何让这个字体选择器在带有选项卡的 Bootstrap 模式中正确显示

jquery - 如果设置了边框,html 提交按钮在按下时不会明显下沉

javascript - jQuery 数据表导出到 excelHtml5 HYPERLINK 问题

jquery - .NET MVC - 表单提交导致回发而不是 onSubmit javascript 执行

html - 我怎样才能阻止我的提交按钮占用屏幕的宽度?

javascript - 图表 js 不显示图表

jQuery 幻灯片 - div 不会彼此相邻滑动

javascript - 当我执行 document.loginform.submit() 时,无法在 Javascript 中手动提交表单