【问题标题】:Empty elements in an input form passed on to URL [duplicate]输入表单中的空元素传递到 URL [重复]
【发布时间】:2025-12-10 05:10:02
【问题描述】:

可能重复:
How to prevent submitting the HTML form’s input field value if it empty

如果我有一个三件式输入表单和一个提交按钮。

表格 1 id:书
表 2 id:音乐
表格 3 id: tv

假设我将“Book1”放在书籍字段中,将“Music1”放在音乐字段中,而在 TV 字段中什么都没有,我会得到这个 URL:

http://url/search/?book=Book1&music=Music1&tv=

发生的情况是,即使“tv”字段中没有任何内容,“&tv=”仍会附加到 URL。有没有办法阻止这种情况,或者这是标准的浏览器行为?

【问题讨论】:

    标签: python html forms input


    【解决方案1】:

    这是由于浏览器的行为,正如this answer 中所说的那样。

    要“克服”这种默认行为,您必须使用客户端脚本。我能想到的最简单和不打扰的方法是在你的页面上添加这个:

    <script type="text/javascript">
    window.onload = function() {
        for (var i = 0; i < document.forms.length; i++) {
            var oForm = document.forms[i];
            oForm.onsubmit = function() {
                for (var j = 0; j < this.elements.length; j++) {
                    var element = this.elements[j];
                    if (element.type === "text" && element.value === "")
                        element.disabled = true;
                }
            };
        }
    };​
    </script>
    

    这将在提交表单时自动禁用任何空文本框,导致浏览器不为它们发送任何值。

    Live test case.

    【讨论】:

      【解决方案2】:

      这是标准且合乎逻辑的行为。 “无值”与“空值”不同。

      【讨论】:

        最近更新 更多