2012-05-21 63 views
0

所以我一直在使用這種通用的代碼來創建表單元素的URL的JavaScript創建表單元素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來檢查它是否是複選框並被選中?

謝謝!

+0

您是否嘗試過使用if(ELEM [I] .checked) – Praveen

回答

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); 
} 
1

內,您的for循環做到這一點:

if (elem[i].type != "checkbox" || elem[i].checked) 
    url = url + ... 
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'