忽略GET表单中未选中的复选框



在使用GET方法处理表单时,我使用了一段代码来忽略空的输入框。它适用于文本输入,但不适用于我在表单中的复选框。我使用的代码是

function SubmitForm(pForm) {
var getString = "";
var elems = pForm.getElementsByTagName('input');
for(var i = 0; i < elems.length; i++) {
if(elems[i].type == "submit") {
continue;
}
if(elems[i].value != "") {
getString += encodeURIComponent(elems[i].name) + "=" + encodeURIComponent(elems[i].value) + "&";
}
}
window.location = pForm.action + getString;
return false;
}

我的表单的HTML是

<form action="game_finder.php?" method="GET" onsubmit="return SubmitForm(this);">
<input type="checkbox" name="system[]" value="Warhammer 40k">Warhammer 40k&nbsp;&nbsp;
<input type="checkbox" name="system[]" value="Kill Team">Kill Team&nbsp;&nbsp;
<input type="checkbox" name="system[]" value="Warhammer Quest: Blackstone Fortress">Warhammer Quest: 
Blackstone Fortress&nbsp;&nbsp;
<input type="checkbox" name="system[]" value="Necromunda">Necromunda&nbsp;&nbsp;

感谢您的帮助。

您需要检查复选框是否已选中,因为您已经在为复选框赋值。

请参阅下面的代码片段。

function SubmitForm(pForm) {
var getString = "";
var elems = pForm.elements;
for (var i = 0; i < elems.length; i++) {
if (elems[i].type == "submit") {
continue;
}
if (elems[i].type == "checkbox" && elems[i].checked == true) {
getString += encodeURIComponent(elems[i].name) + "=" + encodeURIComponent(elems[i].value) + "&";
}
if ((elems[i].type == "text" || elems[i].type == "select-one") && elems[i].value != "") {
getString += encodeURIComponent(elems[i].name) + "=" + encodeURIComponent(elems[i].value) + "&";
}
}
window.location = pForm.action + getString;
return false;
}
<html>
<head>

<!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
</head>
<body>
<form action="game_finder.php?" method="GET" onsubmit="return SubmitForm(this);">
<input type="checkbox" name="system[]" value="Warhammer 40k">Warhammer 40k&nbsp;&nbsp;
<input type="checkbox" name="system[]" value="Kill Team">Kill Team&nbsp;&nbsp;
<input type="checkbox" name="system[]" value="Warhammer Quest: Blackstone Fortress">Warhammer Quest:
Blackstone Fortress&nbsp;&nbsp;
<input type="checkbox" name="system[]" value="Necromunda">Necromunda&nbsp;&nbsp;
<br/>
<input type="submit" />
</form>
</body>
</html>

最新更新