0

この汎用コードを使用して、フォーム要素から URL を作成していました。

function 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を変更するにはどうすればよいですか?

ありがとう!

4

3 に答える 3

1

forループ内でこれを行います:

if (elem[i].type != "checkbox" || elem[i].checked)
    url = url + ...
于 2012-05-21T14:54:59.613 に答える
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);
}
于 2012-05-21T14:57:31.830 に答える
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'
于 2012-05-21T14:55:41.400 に答える