2012-08-27 13 views
10

मैं एक चेकबॉक्स का उपयोग कर रहा हूं और मैं चाहता हूं कि लोग इसे चेक/अनचेक कर सकें। हालांकि, जब वे इसे अनचेक करते हैं, तो मैं यह पुष्टि करने के लिए एक jQueryUI मोडल पॉपअप का उपयोग कर रहा हूं कि वे वास्तव में ऐसा करना चाहते हैं। इस प्रकार वे ठीक या रद्द करें, और मैं चाहता हूं कि मेरा चेकबॉक्स केवल तभी अनचेक किया जाए जब वे ठीक पर क्लिक करें।
यही कारण है कि मैं चेकबॉक्स को दृष्टिहीन अनचेक होने से रोकने के लिए अनचेक ईवेंट को पकड़ना चाहता हूं, और यदि उपयोगकर्ता ठीक पर क्लिक करना होता है तो इसे प्रोग्रामेटिक रूप से अनचेक करें।क्लिक किए जाने पर अनचेकिंग से चेकबॉक्स को रोकें (अक्षम या रीडोनली के बिना)

मैं यह कैसे कर सकता हूं?

पुनश्च: मैं जानता हूँ कि मैं कर सकता है के बाद अगर पर उपयोगकर्ता क्लिक रद्द की फिर से जांच यह लेकिन यह है कि check घटना है जो मैं नहीं चाहता ट्रिगर करेगा।

$("#test").on('change', function() { 
    this.checked=!this.checked?!confirm('Really uncheck this one ?'):true; 
}); 
​ 

:

उत्तर

14
$("#checkboxID").on("click", function (e) { 
    var checkbox = $(this); 
    if (checkbox.is(":checked")) { 
     // do the confirmation thing here 
     e.preventDefault(); 
     return false; 
    } 
}); 
+0

'.live()' jQuery के नवीनतम संस्करण से बहिष्कृत है। इसके बजाए '.on()' का प्रयोग करें। :) – AdityaParab

+0

ओह, यह नहीं पता था, –

+0

अपडेट किया गया ठीक है अब यह काम कर रहा है:) धन्यवाद! – user1498572

0
$("#yourCheckBoxId").on('change',function(e){ 
    e.preventDefault(); 
    $("#yourPopDiv").popup(); 
}); 

preventDefault() अपने input[type="checkbox"]

की और अपने पॉपअप div

$("#ok").on('click',function(){ 
    $("#yourCheckBoxId").attr("checked",true); 
}); 
10

कुछ की तरह पर डिफ़ॉल्ट व्यवहार को निष्क्रिय कर देगा

+0

सबसे अच्छा एक :) +1 – Uttara

+1

+1 अच्छा। आप इसे भी छोटा/स्पष्ट कर सकते हैं: 'this.checked = this.checked || पुष्टि करें ('वास्तव में इसे अनचेक करें?'); ' – nbrooks

0

शुद्ध सीएसएस समाधान

चेकबॉक्स चुनें -

input[type="checkbox"] { 
    pointer-events: none; 
} 

सुंदर अच्छी तरह से काम करता है, और अब आप अपनी पसंद के किसी भी तत्व क्लिक पर अपने चेकबॉक्स टॉगल कर सकते हैं।

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