2011-10-08 16 views
7

के साथ एक PHP सरणी में जावास्क्रिप्ट के साथ चेक बॉक्स मैं निम्नलिखित कोड है:चेक/अनचेक करें कुंजी

<a href="javascript:setCheckboxes3(1);" class="chkmenu">Check All</a> | 
<a href="javascript:setCheckboxes3(0);" class="chkmenu">Uncheck All</a> | 
<a href="javascript:setCheckboxes3(2);" class="chkmenu">Invert Selection</a><br /> 
<table> 
<tr> 
<td><input type="checkbox" name="names[8]" value="yes" />Paul</td> 
<td><input type="checkbox" name="names[11]" value="yes" />Bob</td> 
<td><input type="checkbox" name="names[44]" value="yes" />Tom</td> 
</tr> 
</table> 

और निम्न स्क्रिप्ट:

function setCheckboxes3(act) 
    { 
    elts = document.getElementsByName("names[]"); 
    var elts_cnt = (typeof(elts.length) != 'undefined') ? elts.length : 0; 
    if (elts_cnt) 
    { 
    for (var i = 0; i < elts_cnt; i++) 
     { 
     elts[i].checked = (act == 1 || act == 0) ? act : (elts[i].checked ? 0 : 1); 
     } 
    } 
    } 

स्क्रिप्ट कुंजी के बिना अन्य सरणियों के साथ काम कर रहा है , लेकिन मैं इसे इस सरणी के साथ काम करने के लिए नहीं मिल सकता जिसमें कुंजी है।

अग्रिम

+0

मैं उलझन में हूं ... PHP कहां आया है? – Nanne

+0

नाम [] एक PHP सहयोगी सरणी है। –

+0

नहीं, यह नहीं है। इसका एचटीएमएल, इसका तत्व का नाम है। – Nanne

उत्तर

10

धन्यवाद आप getElementsByClassName उपयोग कर सकते हैं:

<script type="text/javascript" language="javascript"> 
function setCheckboxes3(act) { 
    var e = document.getElementsByClassName('names'); 
    var elts_cnt = (typeof(e.length) != 'undefined') ? e.length : 0; 
    if (!elts_cnt) { 
    return; 
    } 
    for (var i = 0; i < elts_cnt; i++) { 
    e[i].checked = (act == 1 || act == 0) ? act : (e[i].checked ? 0 : 1); 
    } 
} 
</script> 

<a href="javascript:setCheckboxes3(1);" class="chkmenu">Check All</a> | 
<a href="javascript:setCheckboxes3(0);" class="chkmenu">Uncheck All</a> | 
<a href="javascript:setCheckboxes3(2);" class="chkmenu">Invert Selection</a><br /> 
<input type="checkbox" name="names[8]" class="names" value="yes" />Paul 
<input type="checkbox" name="names[11]" class="names" value="yes" />Bob 
<input type="checkbox" name="names[44]" class="names" value="yes" />Tom 

या आप का उपयोग कर सकते हैं: getElementsByTagName

<script type="text/javascript" language="javascript"> 
function setCheckboxes3(act) { 
    var e = document.getElementsByTagName('input'); 
    var elts_cnt = (typeof(e.length) != 'undefined') ? e.length : 0; 
    if (!elts_cnt) { 
    return; 
    } 
    for (var i = 0; i < elts_cnt; i++) { 
    if((e[i].type) == 'checkbox') { 
     e[i].checked = (act == 1 || act == 0) ? act : (e[i].checked ? 0 : 1); 
    } 
    } 
} 
</script> 

<a href="javascript:setCheckboxes3(1);" class="chkmenu">Check All</a> | 
<a href="javascript:setCheckboxes3(0);" class="chkmenu">Uncheck All</a> | 
<a href="javascript:setCheckboxes3(2);" class="chkmenu">Invert Selection</a><br /> 
<input type="checkbox" name="names[8]" value="yes" />Paul 
<input type="checkbox" name="names[11]" value="yes" />Bob 
<input type="checkbox" name="names[44]" value="yes" />Tom 

आप jQuery कोशिश करने का मौका मिला?

+0

धन्यवाद! पहले व्यक्ति ने चाल की थी। मैंने अभी तक jQuery की कोशिश नहीं की है क्योंकि मैं अभी जावास्क्रिप्ट सीखना शुरू कर रहा हूं। –

+0

फिर यह अच्छा है, मैं बुनियादी पहले (मूल जावास्क्रिप्ट) फिर jQuery सीखने की सलाह देता हूं। मैं इस तरह से आसान होगा। –

संबंधित मुद्दे