所以我一直在使用这个通用代码从表单元素
创建一个URLfunction submiturl() {
url="Search.do?call=JS";
var elem = document.getElementById('searchInput').elements;
for(var i = 0; i < elem.length; i++) {
url = url + "&" + escape(elem[i].name) + "=" + escape(elem[i].value);
}
url = url.substring(0,(url.length-1));
alert(url);
}
但它没有正确处理复选框 - 如果选中复选框,我只想添加到URL。所以,如果你有这个HTML
<html>
<body>
<form name="searchInput" id ="searchInput">
<input name="first" type="checkbox" value="123"/>One two three
<input name="second" type="checkbox" value="456"/>Four five six
<button type="button" onClick="submiturl();">Submit</button>
</form>
</body>
</html>
它将使用两个复选框的值创建URL,无论它们是否被选中。
那么如何修改我的javascript来检查它是否是一个复选框并被选中?
谢谢!
答案 0 :(得分:1)
在for-loop中执行此操作:
if (elem[i].type != "checkbox" || elem[i].checked)
url = url + ...
答案 1 :(得分:0)
是复选框吗?
typeof elem[i].attributes['type'] != 'undefined' &&
elem[i].attributes['type'].value == 'checkbox'
检查了吗?
typeof elem[i].attributes['checked'] != 'undefined' &&
elem[i].attributes['checked'].value == 'checked'
答案 2 :(得分:0)
function submiturl() {
var url="Search.do?call=JS",
els = document.getElementById("searchInput").elements
;
for(var el, i = 0, n = els.length; i < n; i++) {
el = els[i];
if (el.checked || el.type !== "checkbox") {
url += "&" + encodeURIComponent(el.name) +
"=" + encodeURIComponent(el.value)
;
}
}
alert(url);
}