如果我有一个三件式输入表单和一个提交按钮。
表 1 id:书
表 2 id:音乐
表 3 id:电视
假设我将“Book1”放在图书字段中,将“Music1”放在音乐字段中,而在 TV 字段中什么都没有,我会得到这个 URL:
http://url/search/?book=Book1&music=Music1&tv=
发生的情况是,即使“tv”字段中没有任何内容,“&tv=”仍会附加到 URL。有没有办法阻止这种情况,或者这是标准的浏览器行为?
如果我有一个三件式输入表单和一个提交按钮。
表 1 id:书
表 2 id:音乐
表 3 id:电视
假设我将“Book1”放在图书字段中,将“Music1”放在音乐字段中,而在 TV 字段中什么都没有,我会得到这个 URL:
http://url/search/?book=Book1&music=Music1&tv=
发生的情况是,即使“tv”字段中没有任何内容,“&tv=”仍会附加到 URL。有没有办法阻止这种情况,或者这是标准的浏览器行为?
这是标准和合乎逻辑的行为。“无值”与“空值”不同。
这是由于浏览器的行为,正如这个答案中正确所说的那样。
要“克服”这种默认行为,您必须使用客户端脚本。我能想到的最简单和不打扰的方法是在你的页面上添加这个:
<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>
这将在提交表单时自动禁用任何空文本框,导致浏览器不为它们发送任何值。