0

可能重复:
如何防止提交 HTML 表单的输入字段值(如果它为空)

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

表 1 id:书
表 2 id:音乐
表 3 id:电视

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

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

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

4

2 回答 2

1

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

于 2012-10-16T11:12:08.033 回答
1

这是由于浏览器的行为,正如这个答案中正确所说的那样。

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

<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>

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

现场测试用例

于 2012-10-16T11:26:15.337 回答