2012-08-16 10 views
22

में चेकबॉक्स को सक्षम या अक्षम करें, मैं शर्त के आधार पर तालिका की पंक्ति में चेकबॉक्स को सक्षम या अक्षम करना चाहता हूं।एचटीएमएल

कोड -

<td><input type="checkbox" name="repriseCheckBox" disabled={checkStat == 1 ? true : false}/></td> 

अगर checkStat = 1, और इसे सक्षम रखने चेकबॉक्स को निष्क्रिय करने की जरूरत है।

यह काम नहीं कर रहा है। यह सभी चेकबॉक्स अक्षम कर रहा है। कोई सुझाव?

+0

चर किस तरह checkStat है? यह कहां से आता है? –

+0

@ पेक्का - चेकस्टैट जेएसपी वैरिएबल है, उसी जेएसपी – anirudha

+0

में संभावित डुप्लिकेट [अक्षम विशेषता के लिए सही मूल्य] (http://stackoverflow.com/questions/6961526/correct-value-for-disabled-attribute) –

उत्तर

28

यदि आप disabled विशेषता निर्दिष्ट करते हैं तो आप इसे मानते हैं disabled होना चाहिए। (एचटीएमएल 5 में आप विशेषता मान को छोड़कर सब कुछ छोड़ सकते हैं। एचटीएमएल 4 में आप विशेषता नाम को छोड़कर सब कुछ छोड़ सकते हैं।)

यदि आप नियंत्रण को अक्षम नहीं करना चाहते हैं तो बिल्कुल विशेषता निर्दिष्ट न करें ।

अक्षम:

<input type="checkbox" disabled> 
<input type="checkbox" disabled="disabled"> 

सक्षम: अपने टेम्पलेट भाषा जाने बिना,

<input type="checkbox" disabled="1"> 
<input type="checkbox" disabled="true"> 
<input type="checkbox" disabled="false"> 

तो,:

<input type="checkbox"> 

अमान्य (लेकिन आम तौर पर त्रुटि विकलांग के रूप में व्यवहार किया जाना बरामद) मुझे लगता है कि आप देख रहे हैं:

<td><input type="checkbox" name="repriseCheckBox" {checkStat == 1 ? disabled : }/></td> 
+1

यह नहीं है मेरे लिए काम करना यह सभी चेकबॉक्स अक्षम कर रहा है। मैं jsp का उपयोग कर रहा हूँ। – anirudha

1

एचटीएमएल पार्सर बस इस तरह के रेखांकित जावास्क्रिप्ट की व्याख्या नहीं करता है।

आप ऐसा कर सकते हैं:

<td><input type="checkbox" id="repriseCheckBox" name="repriseCheckBox"/></td> 

<script>document.getElementById("repriseCheckBox").disabled=checkStat == 1 ? true : false;</script> 
+0

कोई 'getElementByName' विधि नहीं है। यह एक बहुवचन विधि है और एक नोड सूची देता है, तत्व नहीं। – Quentin

+0

@dystroy - आपके उत्तर के लिए धन्यवाद। लेकिन, चेकबॉक्स उसी आईडी के साथ सभी पंक्तियों में दोहराएगा ताकि यह सभी चेकबॉक्स अक्षम कर सके। – anirudha

+2

एक ही आईडी या नाम को एक से अधिक तत्वों को कभी न दें! आप गतिशील नाम/आईडी ('स्ट्रिंग आईडी =" reprise चेकबॉक्स _ "+ i ++') बनाने के लिए काउंटर का उपयोग कर सकते हैं। –

-2

मैं जानता हूँ कि इस सवाल का एक छोटा सा पुराना है, लेकिन यहाँ मेरे समाधान है:

<!-- Checkbox who determine if the other checkbox must be disabled --> 
<input type="checkbox" id="checkboxDetermine"> 
<!-- The other checkbox conditionned by the first checkbox --> 
<input type="checkbox" id="checkboxConditioned"> 
<!-- JS Script --> 
<script type="text/javascript"> 
    // Get your checkbox who determine the condition 
    var determine = document.getElementById("checkboxDetermine"); 
    // Make a function who disabled or enabled your conditioned checkbox 
    var disableCheckboxConditioned = function() { 
     if(determine.checked) { 
      document.getElementById("checkboxConditioned").disabled = true; 
     } 
     else { 
      document.getElementById("checkboxConditioned").disabled = false; 
     } 
    } 
    // On click active your function 
    determine.onclick = disableCheckboxConditioned; 
    disableCheckboxConditioned(); 
</script> 

आप डेमो यहाँ काम देख सकते हैं।

// HTML 
// <input type="checkbox" onClick="setcb1()"/> 
// <input type="checkbox" onClick="setcb2()"/> 

// cb1 = checkbox 1 
// cb2 = checkbox 2 
    var cb1 = getId('cb1'), 
     cb2 = getId('cb2'); 

    function getId(id) { 
    return document.getElementById(id); 
    } 

    function setcb1() { 
    if(cb1.checked === true) { 
     cb2.checked = false; 
     cb2.disabled = "disabled"; // You have to disable the unselected checkbox 
    } else if(cb1.checked === false) { 
     cb2.disabled = ""; // Then enable it if there isn't one selected. 
    } 
    } 

    function setcb2() { 
    if(cb2.checked === true) { 
     cb1.checked = false; 
     cb1.disabled = "disabled" 
    } else if(cb2.checked === false) { 
     cb1.disabled = "" 
    } 

आशा है कि इससे मदद मिलती है!

1
<input type="checkbox" value="" ng-model="t.IsPullPoint" onclick="return false;" onkeydown="return false;"><span class="cr"></span></label> 
+0

शायद ओपी को पता चले कि आपने अपना जवाब क्यों दिया, यानी क्या सुधार हुआ है या आपका कोड क्यों काम करेगा। एक संक्षिप्त स्पष्टीकरण देने का मतलब है कि ओपी पूरी तरह से समझ सकता है और अगले व्यक्ति, या एसओ समुदाय की मदद कर सकता है। –

+0

अब मुझे एक सबसे अच्छा समाधान मिल रहा है ...

0

jsp आप इसे इस प्रकार कर सकते हैं:

<% 
boolean checkboxDisabled = true; //do your logic here 
String checkboxState = checkboxDisabled ? "disabled" : ""; 
%> 
<input type="checkbox" <%=checkboxState%>>