输入表单中的空元素传递给URL

时间:2012-10-16 11:08:51

标签: python html forms input

  

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

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

表格1 id:book
表格2 id:音乐
表格3:电视

假设我把“Book1”放在书籍字段中,“Music1”放在音乐领域,而没有在电视领域,我会得到这个网址:

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

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

2 个答案:

答案 0 :(得分:1)

这是标准和逻辑行为。 “没有价值”与“空价值”不同。

答案 1 :(得分: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