JQuery वर्दी पुस्तकालय का उपयोग करके चेकबॉक्स को अनचेक कैसे करें


144

मुझे अनचेक करने में समस्या है a checkboxमेरे jsFiddle पर एक नजर है , जहां मैं प्रयास कर रहा हूं:

   $("#check2").attr("checked", true);

मैं स्टाइल के लिए वर्दी का उपयोग करता हूं checkboxऔर यह केवल जांच / अनचेक करने के लिए काम नहीं करता है checkbox

कोई विचार?


दोनों गूगल क्रोम और फ़ायरफ़ॉक्स में यह मेरे लिए काम नहीं करता है
अपवोट

जवाबों:


108

उनके डॉक्स को देखते हुए, उनके पास $.uniform.update"वर्दीधारी" तत्व को ताज़ा करने की सुविधा है।

उदाहरण: http://jsfiddle.net/r87NH/4/

$("input:checkbox").uniform();

$("body").on("click", "#check1", function () {
    var two = $("#check2").attr("checked", this.checked);
    $.uniform.update(two);
});

5
@mkoryak: ठीक काम करता है 1.4.4, लेकिन js और css फ़ाइलों के लिंक टूट गए थे। यहाँ एक अद्यतन फ़िडेल है। यदि आपका मतलब है कि इसमें विशेष रूप से मुद्दे होंगे 1.6, तो संभवतः यह सही है क्योंकि jQuery बदल गया है और फिर से वापस आ गया है .attr()। का उपयोग करना 1.6या उच्चतर, आपको वास्तव में उपयोग करना चाहिए .prop()
user113716

मैं अपडेट किए गए jsFiddle और मूल (चेकबॉक्स 2 के मिसलैबलिंग के ठीक नीचे) के बीच बिल्कुल कोई अंतर नहीं देख सकता, सिवाय इसके कि मेरे लिए अपडेटेड वर्जन काम करता है और मूल नहीं!?!
iPadDeveloper2011

BTW इन सभी पिक्सेल से तैयार किए गए यूनिफ़ॉर्म फॉर्म रेटिना पर बहुत ही अप्रकट दिखते हैं ।
अवतार

मेरे लिए भी काम नहीं किया jsfiddle काम नहीं करता है या भ्रामक है
मैटी

367

एक सरल समाधान वर्दी का उपयोग करने के बजाय ऐसा करना है:

$('#check1').prop('checked', true); // will check the checkbox with id check1
$('#check1').prop('checked', false); // will uncheck the checkbox with id check1

यह किसी भी क्लिक एक्शन को परिभाषित नहीं करेगा।

आप भी उपयोग कर सकते हैं:

$('#check1').click(); // 

यह चेकबॉक्स के लिए चेक / अनचेक को टॉगल करेगा लेकिन यह आपके द्वारा परिभाषित किसी भी क्लिक एक्शन को भी ट्रिगर करेगा। तो सावधान रहें।

संपादित करें : jQuery 1.6+ चेकबॉक्स के लिए उपयोग prop()नहीं करता attr()है चेक किए गए मान


2
यह जाँच की गई विशेषता को छोड़ देता है जैसा कि मेरे लिए jQuery 1.7.1 में है। काम करता है लेकिन वह नहीं करता है जो आपको लगता है कि इसे करना चाहिए।
2rs2ts

24
$("#chkBox").attr('checked', false); 

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

$("#chkBox").attr('checked', true); 

चेकबॉक्स की जाँच करने के लिए।


4
मुझे लगता है कि .attr () के बजाय .prop () फ़ंक्शन का उपयोग करना बेहतर है। अन्यथा यह हमेशा की तरह काम नहीं करेगा ...
शमौन स्टाइनबर्गर

13

यदि आप वर्दी 1.5 का उपयोग कर रहे हैं, तो चेक की विशेषता जोड़ने या हटाने के लिए इस सरल चाल का उपयोग करें
अपने चेकबॉक्स के इनपुट फ़ील्ड में मूल्य = "चेक" जोड़ें।
में यह कोड जोड़ें uniform.js> function doCheckbox(elem){>.click(function(){

if ( $(elem+':checked').val() == 'check' ) {
    $(elem).attr('checked','checked');           
}
else {
    $(elem).removeAttr('checked');
}   

यदि आप अपने इनपुट बॉक्स में मूल्य = "चेक" नहीं जोड़ना चाहते हैं क्योंकि कुछ मामलों में आप दो चेकबॉक्स जोड़ते हैं, इसलिए इसका उपयोग करें

if ($(elem).is(':checked')) {
 $(elem).attr('checked','checked');
}    
else
{    
 $(elem).removeAttr('checked');
}

यदि आप वर्दी 2.0 का उपयोग कर रहे हैं तो
इस classUpdateChecked($tag, $el, options) {फ़ंक्शन परिवर्तन में चेक की विशेषता को जोड़ने या हटाने के लिए इस सरल चाल का उपयोग करें

if ($el.prop) {
    // jQuery 1.6+
    $el.prop(c, isChecked);
}

सेवा

if ($el.prop) {
    // jQuery 1.6+
    $el.prop(c, isChecked);
    if (isChecked) {
        $el.attr(c, c);
    } else {
        $el.removeAttr(c);
    }

}

7
$('#check1').prop('checked', true).uniform(); 
$('#check1').prop('checked', false).uniform(); 

इसने मेरे लिए काम किया।


आपका बहुत बहुत धन्यवाद। मैं पुष्टि कर सकता हूं कि यह सबसे सरल उपाय है।
रूडोल्फ ओपरमैन


1

$.uniform.update()यदि आपको दस्तावेज़ में उल्लिखित जावास्क्रिप्ट का उपयोग करने वाले तत्व को अपडेट करने की आवश्यकता है, तो आपको कॉल करना होगा।


1

सबसे पहले, का checkedमान हो सकता है checked, या एक रिक्त स्ट्रिंग है।

$("input:checkbox").uniform();

$('#check1').live('click', function() {
    $('#check2').attr('checked', 'checked').uniform();
});

मूल्य के रूप में बूलियन पास करने में कुछ भी गलत नहीं है checked
user113716

लेकिन हम HTML मार्कअप नहीं लिख रहे हैं। हम एक संपत्ति सेट कर रहे हैं HTMLInputElementcheckedसंपत्ति पर एक नजर है ।
user113716

कोई बात नहीं ... मुझे सच में समझ में नहीं आता कि यह अमान्य क्यों है, या तो ...
nyuszika7h

एक बूलियन मान पास करना केवल 1.6+ में समर्थित है, इससे पहले आपको चेक की गई विशेषता को 'चेक' करना होगा या इसे निकालना होगा।
मकोरियाक

1

कुछ मामलों में आप इसका उपयोग कर सकते हैं:

$('.myInput').get(0).checked = true

टॉगल के लिए आप फ़ंक्शन के साथ और भी उपयोग कर सकते हैं


1

 $("#checkall").change(function () {
            var checked = $(this).is(':checked');
            if (checked) {
                $(".custom-checkbox").each(function () {
                    $(this).prop("checked", true).uniform();
                });
            } else {
                $(".custom-checkbox").each(function () {
                    $(this).prop("checked", false).uniform();
                });
            }
        });

        // Changing state of CheckAll custom-checkbox
        $(".custom-checkbox").click(function () {
            if ($(".custom-checkbox").length == $(".custom-checkbox:checked").length) {
                $("#chk-all").prop("checked", true).uniform();
            } else {
                $("#chk-all").removeAttr("checked").uniform();
            }
        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id='checkall' /> Select All<br/>
 <input type="checkbox" class='custom-checkbox' name="languages" value="PHP"> PHP<br/>
 <input type="checkbox" class='custom-checkbox' name="languages" value="AngularJS"> AngularJS<br/>
 <input type="checkbox" class='custom-checkbox' name="languages" value="Python"> Python<br/>
 <input type="checkbox" class='custom-checkbox' name="languages" value="Java"> Java<br/>


0

करने का दूसरा तरीका है,

उपयोग $('#check2').click();

यह चेकबॉक्स को चेक करने के लिए वर्दी का कारण बनता है और इसे मास्क अपडेट करता है


-1

चेकबॉक्स जो रेडियो बीटीएन की तरह कार्य करता है

$(".checkgroup").live('change',function() { var previous=this.checked; $(".checkgroup).attr("checked", false); $(this).attr("checked", previous); });

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.