2009-01-23 23 views
27

मेरे पास एक जावास्क्रिप्ट दिनचर्या है जो चेकबॉक्स के समूह पर क्रियाएं कर रही है, लेकिन अंतिम कार्रवाई मैं क्लिक किए गए चेकबॉक्स को चेक या अनचेक करने के लिए सेट करना चाहता हूं, यदि उपयोगकर्ता था बॉक्स या अनचेकिंग की जांच।यह जांचने के लिए जावास्क्रिप्ट कि चेकबॉक्स की जांच की जा रही है या अनचेक किया गया है

दुर्भाग्यवश, हर बार जब मैं जांच करता हूं कि यह चेक किया गया है या अनचेक किया गया है, तो यह संकेत देता है कि उपयोगकर्ता हमेशा बॉक्स को चेक कर रहा है! किसी भी मदद की सराहना की जाएगी, मैंने जावास्क्रिप्ट भी शामिल किया है। आप क्या चाहते हैं के लिए -

<input type='checkbox' name='test' value='1'> 

तो जब कोई जाँच करता है कि बॉक्स, सर्वर 1 के value साथ test नामक एक चर प्राप्त करता है:

// Uncheck all the checkboxs with the same Tax Credit 
for (i=0; i<arrChecks.length; i++) 
{ 
    var attribute = arrChecks[i].getAttribute("xid") 
    if (attribute == elementName) 
    { 
     // if the current state is checked, unchecked and vice-versa 
     if (arrChecks[i].value == "on") // <-- This is always returning true, even if the box is being unchecked 
     { 
      arrChecks[i].checked = 1; 
     } else { 
      arrChecks[i].checked = 0; 
     } 

    } else { 
     arrChecks[i].checked = 0; 
    } 
} 
+0

एचटीएमएल में चेकबॉक्स को चेक करने का सही तरीका चेक किया गया है = "चेक किया गया" –

+1

क्या आपने jquery, prototype, moo या yui जैसे पुस्तकालयों को माना है? वे इसे थोड़ा आसान बनाते हैं –

उत्तर

24

आपको चेकबॉक्स तत्व की चेक की गई संपत्ति के विरुद्ध मूल्यांकन करना चाहिए।

for (i=0; i<arrChecks.length; i++) 
{ 
    var attribute = arrChecks[i].getAttribute("xid") 
    if (attribute == elementName) 
    { 
     // if the current state is checked, unchecked and vice-versa 
     if (arrChecks[i].checked) 
     { 
      arrChecks[i].checked = false; 
     } else { 
      arrChecks[i].checked = true; 
     } 

    } else { 
     arrChecks[i].checked = false; 
    } 
} 
+1

धन्यवाद दोस्तों, यह सही काम करता है! –

+0

मैं किसी अन्य प्रोजेक्ट पर काम कर रहा था और जब आप कोड का उपयोग करते हैं तो यह कोड पूरी तरह से काम करता है (arrchehecks [i] .checked) –

17

एक checkbox की value विशेषता क्या आप द्वारा निर्धारित है चेक करें value (जो कभी भी नहीं बदलेगा, चाहे वह चेक किया गया हो या नहीं) लेकिन चेकबॉक्स की checked स्थिति है।

इसलिए, यदि आप इस कोड को बदलने:

if (arrChecks[i].value == "on") 
{ 
    arrChecks[i].checked = 1; 
} else { 
    arrChecks[i].checked = 0; 
} 
इस के साथ

:

arrChecks[i].checked = !arrChecks[i].checked; 

यह काम करना चाहिए। 0 और 1 के बजाय आपको true और false का उपयोग करना चाहिए।

+0

तो कोड यह होगा: "अगर (arrchehecks [i] .checked) arrchecks [i] .checked = 1;"। यह सही नहीं है। –

+1

पर्याप्त मेला। वहां तर्क नहीं देखा। तय की। –

0

मुझे यकीन नहीं है कि समस्या क्या है, लेकिन मुझे पूरा यकीन है कि यह इसे ठीक करेगा।

for (i=0; i<arrChecks.length; i++) 
    { 
     var attribute = arrChecks[i].getAttribute("xid") 
     if (attribute == elementName) 
     { 
      if (arrChecks[i].checked == 0) 
      { 
       arrChecks[i].checked = 1; 
      } else { 
       arrChecks[i].checked = 0; 
      } 

     } else { 
      arrChecks[i].checked = 0; 
     } 
    } 
0

यह भी सुनिश्चित करें कि आप इसे फ़ायरफ़ॉक्स और आईई दोनों में जांचें। जेएस छेड़छाड़ किए गए चेकबॉक्स के साथ कुछ गड़बड़ियां हैं।

5

एक चेकबॉक्स टॉगल करने के लिए या आप

element.checked = !element.checked; 

ताकि आप इस्तेमाल कर सकते हैं का उपयोग कर सकते

if (attribute == elementName) 
{ 
    arrChecks[i].checked = !arrChecks[i].checked; 
} else { 
    arrChecks[i].checked = false; 
} 
4
function enter_comment(super_id) { 
    if (!(document.getElementById(super_id).checked)) { 
     alert('selected checkbox is unchecked now') 
    } else { 
     alert('selected checkbox is checked now'); 
    } 
} 

<input type="checkbox" name="a" id="1" value="1" onclick="enter_comment(this.value)" />

<input type="checkbox" name="b" id="2" value="2" onclick="enter_comment(this.value)" />

+0

यह आईई, मोज़िला, Google क्रोम इत्यादि में परीक्षण किया जाता है ..... –

3
function CHeck(){ 
    var ChkBox = document.getElementById("CheckBox1"); 
    alert(ChkBox.Checked); 
} 

<asp:CheckBox ID="CheckBox1" runat="server" onclick="CHeck()" /> 
+2

(-1) चॉकबॉक्स बनें।चेक किया गया क्योंकि यह मामला संवेदनशील है। मैंने त्रुटि महसूस करने से पहले ~ 20 मिनट काम करने के लिए अपना उदाहरण प्राप्त करने का प्रयास किया! – Eyad

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

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