JQuery onay qutusu üçün "yoxlanıldı"?

JQuery ilə qeyd checkbox bənzər bir şey etmək istərdim:

 $(".myCheckBox").checked(true); 

və ya

 $(".myCheckBox").selected(true); 

Belə bir şey varmı?

3600
09 янв. TPower Jan 09 olaraq təyin olundu 2009-01-09 01:20 '09 at 1:20 'da 2009-01-09 01:20
@ 38 cavab
  • 1
  • 2

jQuery 1.6 +

Yeni .prop() metodunu istifadə edin:

 $('.myCheckbox').prop('checked', true); $('.myCheckbox').prop('checked', false); 

jQuery 1.5.x və aşağıda

.prop() metodu mövcud deyil, belə ki, .attr() istifadə etmək lazımdır.

 $('.myCheckbox').attr('checked', true); $('.myCheckbox').attr('checked', false); 

Xatırladaq ki, bu versiya 1.6 versiyasına qədər jQuery modulları tərəfindən istifadə olunan yanaşma və istifadə etmək üstünlük təşkil edir

 $('.myCheckbox').removeAttr('checked'); 

ikincisi, onay qutusu əvvəlcədən təyin edildikdən sonra, ehtiva edən hər hansı formada .reset() davranışını dəyişdirəcəkdir - bir incə, lakin ehtimal ki, istəksiz davranış dəyişikliyi.

1.5.x-dan 1.6-ə keçid zamanı xüsusiyyətlərin işlənməsində / xassələrində dəyişikliklərin natamam müzakirələrinin daha ətraflı təsviri üçün 1.6 sürümündən və .prop() sənədlərinin xüsusiyyətləri və xüsusiyyətlərini tapa bilərsiniz.

Hər hansı bir jQuery versiyası

Yalnız bir elementlə HTMLInputElement həmişə yalnız HTMLInputElement dəyişdirə bilərsiniz .checked əmlak:

 $('.myCheckbox')[0].checked = true; $('.myCheckbox')[0].checked = false; 

Bunun .prop().attr() metodlarından istifadə etmək üstünlüyü bütün uyğun elementlərlə işləməyidir.

5405
09 янв. Cavab Xian 09 yanvar verilir . 2009-01-09 01:25 '09 saat 01:25 'da 2009-01-09 01:25

İstifadə edin:

 $(".myCheckbox").attr('checked', true); // Deprecated $(".myCheckbox").prop('checked', true); 
border=0

Və qutunun yoxlanılmadığını yoxlamaq istəsəniz:

 $('.myCheckbox').is(':checked'); 
623
09 янв. Cavab bchhun Jan 09 verilir 2009-01-09 01:25 '09 saat 01:25 'da 2009-01-09 01:25

Bu, cross-platform standartı olduğu və hesabat göndərməyinizə imkan verən jQuery istifadə edərək, qutuları yoxlamaq və silmək üçün doğru yoludur.

 $('.myCheckBox').each(function(){ this.checked = true; }); $('.myCheckBox').each(function(){ this.checked = false; }); 

Eyni zamanda, onay kutularını yoxlamaq və silmək üçün JavaScript standartlarını istifadə edirsiniz, belə ki checkbox elementinin yoxlanılmış əmlakını doğru şəkildə tətbiq edən hər hansı bir brauzer bu kodu qüsursuz şəkildə işləyəcəkdir. Bütün əsas brauzerlər olmalıdır, amma Internet Explorer 9-un əvvəl test edə bilməyəcəyəm.

Problem (jQuery 1.6):

Istifadəçi onay kutusunu tıkladığında onay kutusu, "yoxlanılan" öznitelikte yapılan değişikliklere cavab vermir.

Kimsə bu onay kutusunu tıkladıktan sonra tapşırıq yerinə yetirilməmiş olan onay qutusunun öznitəsindəki bir nümunədir (bu Chrome'da olur).

Feeddle

Həll:

DOM elementləri üzərində "yoxlanılmış" JavaScript xüsusiyyətindən istifadə edərək, DOM-nu manipulyasiya etməyə çalışdığımızın yerinə birbaşa sorunu həll edə bilərik.

Feeddle

Bu plugin jQuery tərəfindən seçilmiş hər hansı bir elementin yoxlanılmış əmlakını dəyişəcək və hər hansı bir şərtlə təsdiqləməyin və onay qutusundan sildim. Beləliklə, bu lazımsız qərar kimi görünə bilər, baxmayaraq ki, sizin veb-saytınızı daha rahat edəcək və istifadəçilərin məyusluqlarının qarşısını alır.

 (function( $ ) { $.fn.checked = function(value) { if(value === true || value === false) { // Set the value of the checkbox $(this).each(function(){ this.checked = value; }); } else if(value === undefined || value === 'toggle') { // Toggle the checkbox $(this).each(function(){ this.checked = !this.checked; }); } return this; }; })( jQuery ); 

Alternativ olaraq, plugin istifadə etmək istəmirsinizsə, aşağıdakı kod parçacıqlarını istifadə edə bilərsiniz:

 // Check $(':checkbox').prop('checked', true); // Un-check $(':checkbox').prop('checked', false); // Toggle $(':checkbox').prop('checked', function (i, value) { return !value; }); 
284
06 мая '11 в 22:31 2011-05-06 22:31 Cavab cwharris tərəfindən verilir May 06 '11 at 22:31 2011-05-06 22:31

Bunu edə bilərsiniz

 $('.myCheckbox').attr('checked',true) //Standards compliant 

və ya

 $("form #mycheckbox").attr('checked', true) 

Çalıştırmak istediğiniz onay kutusundaki onclick hadisəsində xüsusi kodunuz varsa, onu istifadə edin:

 $("#mycheckbox").click(); 

Özniteliği tamamen kaldırarak kutunun işaretini kaldırabilirsiniz:

 $('.myCheckbox').removeAttr('checked') 

Bütün onay kutularını aşağıdakı kimi kontrol edə bilərsiniz:

 $(".myCheckbox").each(function(){ $("#mycheckbox").click() }); 
130
09 янв. 09 yanvar Micah'a cavab verdi 2009-01-09 01:24 '09 at 1:24 'da 2009-01-09 01:24

Siz $ .fn obyektini yeni üsullarla da genişləndirə bilərsiniz:

 (function($) { $.fn.extend({ check : function() { return this.filter(":radio, :checkbox").attr("checked", true); }, uncheck : function() { return this.filter(":radio, :checkbox").removeAttr("checked"); } }); }(jQuery)); 

Sonra yalnız edə bilərsiniz:

 $(":checkbox").check(); $(":checkbox").uncheck(); 

Və ya bu adları istifadə edən başqa bir kitabxana istifadə edirsinizsə, onlara mycheck () və myuncheck () kimi daha unikal adlar verə bilərsiniz.

67
20 авг. Cavab verilir livefree75 20 aug. 2010-08-20 21:19 '10 at 21:19 2010-08-20 21:19
 $("#mycheckbox")[0].checked = true; $("#mycheckbox").attr('checked', true); $("#mycheckbox").click(); 

Sonuncu bu onay qutusu üçün bir tıklama etkinliğini etkinleştirir, digərləri isə yoxdur. Buna görə, çalıştırmak istediğiniz onay kutusuna onclick olayında xüsusi kodunuz varsa, sonuncu istifadə edin.

58
09 янв. Cavab Chris Brandsma tərəfindən verilir 09 Yanvar 2009-01-09 01:36 '09 at 1:36 'da 2009-01-09 01:36

Qutuyu yoxlamaq üçün istifadə etməlisiniz

  $('.myCheckbox').attr('checked',true); 

və ya

  $('.myCheckbox').attr('checked','checked'); 

və onay kutusunu silmək üçün həmişə dəyəri yanlış olaraq təyin etməlisiniz:

  $('.myCheckbox').attr('checked',false); 

Əgər etsəniz

  $('.myCheckbox').removeAttr('checked') 

atributu birlikdə rədd edir və buna görə formanı yenidən qura bilməzsiniz.

BAD DEMO jQuery 1.6 . Hesab edirəm ki, qırılır. 1.6 üçün yeni bir vəzifə qoyacağam.

YENİ ÇALIŞMA DEMO jQuery 1.5.2 Chrome'da işləyir.

Həm demolar istifadə edir

 $('#tc').click(function() { if ( $('#myCheckbox').attr('checked')) { $('#myCheckbox').attr('checked', false); } else { $('#myCheckbox').attr('checked', 'checked'); } }); 
56
23 марта '11 в 18:22 2011-03-23 18:22 Cavab mcgrailm tərəfindən verilir 23, '11 at 6:22 pm 2011-03-23 ​​18:22

Sualı qəbul et ...

VALUE ilə qeyd qutusunu necə qurmaq olar?

Tipik bir onay qutusuna bütün giriş etiketlərinin eyni adı verildiyini, value öznitəsində fərqləndiyini unutmayın: setin hər bir girişində heç bir identifikator yoxdur.

Xi'an cavabı aşağıdakı kod satırını istifadə edərək daha spesifik bir selektorla genişləndirilə bilər:

 $("input.myclass[name='myname'][value='the_value']").prop("checked", true); 
42
09 марта '12 в 15:28 2012-03-09 15:28 Cavab Peter Krauss tərəfindən 09 Mart 2012, 15:28 'də verilir. 2012-03-09 15:28

Mən həllini əldən verdim. Həmişə istifadə edəcəyəm:

 if ($('#myCheckBox:checked').val() !== undefined) { //Checked } else { //Not checked } 
42
24 июня '12 в 14:33 2012-06-24 14:33 cavab 24 iyun 2012- ci il tarixində saat 14:33 radələrində verilir. 2012-06-24 14:33

Belirtilen özniteliği olan "ckbItem" verilən substrinqi olan bir dəyəri olan maddələr seçir:

 $('input[name *= ckbItem]').prop('checked', true); 

Adı obyektində ckbItem olan bütün elementləri seçəcək.

37
20 сент. Cavab Abou-Emish 20 sep tərəfindən verilir . 2010-09-20 14:43 '10 at 2:43 PM 2010-09-20 14:43

JQuery 1.6 və ya daha yüksək istifadə edərək bayraq qurmaq üçün aşağıdakıları edin:

 checkbox.prop('checked', true); 

Qutunu silmək üçün aşağıdakıları istifadə edin:

 checkbox.prop('checked', false); 

Burada jQuery ilə bayraq keçmək üçün istifadə etmək istəyirəm:

 checkbox.prop('checked', !checkbox.prop('checked')); 

JQuery 1.5 və ya aşağı istifadə edirsinizsə:

 checkbox.attr('checked', true); 

Qutunu silmək üçün aşağıdakıları istifadə edin:

 checkbox.attr('checked', false); 
36
14 марта '13 в 12:40 2013-03-14 12:40 Cavab Ramon de İsa tərəfindən 14 Mart 2013 günü saat 12: 40-da verilir. 2013-03-14 12:40

Burada jQuery olmadan bunu etmək üçün bir yoldur

 <label>Click Me! <input id="cb" type="checkbox" /> </label> <label>Reflection: <input id="rcb" type="checkbox" /> </label> 
33
23 окт. Cavab Aeoril 23 oktyabr. 2012-10-23 03:41 '12 at 3:41 pm 2012-10-23 03:41

Aşağıdakıları cəhd edin:

 $('#checkboxid').get(0).checked = true; //For checking $('#checkboxid').get(0).checked = false; //For unchecking 
28
10 сент. Cavab 10 sentyabr tarixində prashanth verilir. 2012-09-10 13:26 '12 at 1:26 pm 2012-09-10 13:26

Düyməni istifadə edərək qeyd olunan və yoxlanılmamış kod üçün kod:

 var set=1; var unset=0; jQuery( function() { $( '.checkAll' ).live('click', function() { $( '.cb-element' ).each(function () { if(set==1){ $( '.cb-element' ).attr('checked', true) unset=0; } if(set==0){ $( '.cb-element' ).attr('checked', false); unset=1; } }); set=unset; }); }); 

Yeniləmə. Attr əvəz edən yeni Jquery 1.6 + dəstək metodunu istifadə edən eyni bloğun kodu budur:

 var set=1; var unset=0; jQuery( function() { $( '.checkAll' ).live('click', function() { $( '.cb-element' ).each(function () { if(set==1){ $( '.cb-element' ).prop('checked', true) unset=0; } if(set==0){ $( '.cb-element' ).prop('checked', false); unset=1; } }); set=unset; }); }); 
25
25 окт. 25 oktyabrda Starjahid tərəfindən verilmiş cavab 2011-10-25 11:51 '11 at 11:51 2011-10-25 11:51

elementObject sınamaq üçün jQuery ilə elementObject istifadə edə bilərsiniz:

 $(objectElement).attr('checked'); 

Bunu jQuery'nin bütün versiyalarında səhvsiz istifadə edə bilərik.

Update: jQuery 1.6 +, məsələn, attr əvəz yeni bir prop metodu var:

 $(objectElement).prop('checked'); 
23
24 июня '11 в 11:27 2011-06-24 11:27 cavab 24 iyun 'da 11:27' da Prasanth P tərəfindən verilmişdir 2011-06-24 11:27

PhoneGap proqram inkişafını istifadə edirsinizsə və siz dərhal göstərmək istədiyiniz bir düyməyə bir dəyəriniz varsa, bunu unutmayın.

 $('span.ui-[controlname]',$('[id]')).text("the value"); 

Mən bir sıra olmadan, interfeys nə etdiyinizə baxmayaraq yenilənməyəcək.

23
17 апр. Cavab Clement Ho verilir 17 Aprel. 2012-04-17 09:34 '12 saat 09:34 'da 2012-04-17 09:34

Burada bir neçə onay kutusunun kodunu və bir nümayişini göstərin ...

http://jsfiddle.net/tamilmani/z8TTt/

 $("#check").on("click", function () { var chk = document.getElementById('check').checked; var arr = document.getElementsByTagName("input"); if (chk) { for (var i in arr) { if (arr[i].name == 'check') arr[i].checked = true; } } else { for (var i in arr) { if (arr[i].name == 'check') arr[i].checked = false; } } }); 
22
16 авг. Cavab tamilmani 16 avqustda verilir . 2013-08-16 09:17 '13 at 9:17 2013-08-16 09:17

Digər mümkün həll:

  var c = $("#checkboxid"); if (c.is(":checked")) { $('#checkboxid').prop('checked', false); } else { $('#checkboxid').prop('checked', true); } 
19
12 окт. 12 oktyabrda Məhəmməd Aamir Əli tərəfindən verilən cavab . 2013-10-12 11:23 '13 at 11:23 2013-10-12 11:23

JQuery 1.6 + üçün

 $('.myCheckbox').prop('checked', true); $('.myCheckbox').prop('checked', false); 

JQuery 1.5.x və aşağıda

 $('.myCheckbox').attr('checked', true); $('.myCheckbox').attr('checked', false); 

Yoxlamaq üçün

 $('.myCheckbox').removeAttr('checked'); 
17
21 апр. Cavab verilir 21 Apr 2015-04-21 13:29 '15 at 13:29 pm 2015-04-21 13:29

JQuery sənədləşmə vəziyyəti kimi Internet Explorer 9'dan əvvəl Internet Explorer-da yaddaş sızıntısını yadda saxla:

Sürüm 9-a qədər Internet Explorer-da istifadə edərək, sadə bir ibtidai dəyəri (say, simli və ya boolean) başqa bir şey üçün DOM elementini təyin edərkən, xüsusiyyət aradan qaldırılmırsa (.removeProp () istifadə edərək silinməzsə) Sənəddən DOM elementi. Təhlükəsiz DOM obyektləri üçün sızma yaddaşında olmayan dəyərlər təyin edərkən, .data () istifadə edin.

17
22 мая '13 в 10:25 2013-05-22 10:25 cavab 22 may 2013- il tarixində saat 10: 25-da veriləcək

Cib telefonu istifadə edirsinizsə və interfeysin yenilənməsini istəyiriksə və onay qutusu silinmiş kimi göstərilirsə, aşağıdakıları istifadə edin:

 $("#checkbox1").prop('checked', false).checkboxradio("refresh"); 
17
11 янв. Cavab Matt Peacock tərəfindən verilir . 2013-01-11 16:05 '13 'da 16:05' da 2013-01-11 16:05

Yoxlamaq və silmək üçün

 $('.myCheckbox').prop('checked', true); $('.myCheckbox').prop('checked', false); 
16
14 нояб. Cavab 14 noyabr tarixində jj2422 verilir. 2013-11-14 09:34 '13 at 9:34 2013-11-14 09:34
 $('controlCheckBox').click(function(){ var temp = $(this).prop('checked'); $('controlledCheckBoxes').prop('checked', temp); }); 
15
16 июля '13 в 5:10 2013-07-16 05:10 Cavab mahmoh 16 iyul '13 'də saat 05:10' də verilir 2013-07-16 05:10

Bu, yəqin ki, ən qısa və ən sadə həlldir:

 $(".myCheckBox")[0].checked = true; 

və ya

 $(".myCheckBox")[0].checked = false; 

Hətta daha qısa olacaq:

 $(".myCheckBox")[0].checked = !0; $(".myCheckBox")[0].checked = !1; 

Burada jsFiddle edir .

14
27 мая '14 в 18:11 2014-05-27 18:11 cavab 27 may 2014- cü il tarixdə saat 18: 11-də verilir

Daimi JavaScript çox sadədir və daha az yüklənir:

 var elements = document.getElementsByClassName('myCheckBox'); for(var i = 0; i < elements.length; i++) { elements[i].checked = true; } 

Burada nümunə

13
18 сент. Cavab Alex W 18 sep verilir. 2013-09-18 04:14 '13 'da 4:14' də 2013-09-18 04:14

Qutunu yoxladığınızda, məsələn:

 $('.className').attr('checked', 'checked') 

bu kifayət deyil. Aşağıdakı funksiyanı da zəng etməlisiniz;

 $('.className').prop('checked', 'true') 

Xüsusilə çek xüsusiyyətini sildikdə onay kutusunu.

12
05 марта '15 в 16:10 2015-03-05 16:10 Cavab Serhat Koroğlu tərəfindən 05.03 ' də saat 16:10' da verilir. 2015-03-05 16:10

Onu istifadə edərək çalışamadım:

 $("#cb").prop('checked', 'true'); $("#cb").prop('checked', 'false'); 

Həm doğru, həm də saxta bir bayraq qoydu. Mənim üçün çalışdı:

 $("#cb").prop('checked', 'true'); // For checking $("#cb").prop('checked', ''); // For unchecking 
11
05 янв. Cavab verilir fredcrs 05 yanvar. 2012-01-05 16:26 '12 at 4:26 pm 2012-01-05 16:26

@ Livefree75 dedi:

jQuery 1.5.x və aşağıda

Siz $ .fn obyektini yeni üsullarla da genişləndirə bilərsiniz:

 (function($) { $.fn.extend({ check : function() { return this.filter(":radio, :checkbox").attr("checked", true); }, uncheck : function() { return this.filter(":radio, :checkbox").removeAttr("checked"); } }); }(jQuery)); 

Amma jQuery'nin yeni versiyalarında bu kimi bir şey istifadə etmək məcburiyyətindəyik:

jQuery 1.6 +

  (function($) { $.fn.extend({ check : function() { return this.filter(":radio, :checkbox").prop("checked", true); }, uncheck : function() { return this.filter(":radio, :checkbox").prop("checked",false); } }); }(jQuery)); 

Sonra yalnız edə bilərsiniz:

  $(":checkbox").check(); $(":checkbox").uncheck(); 
11
23 сент. cavab Ardalan Şahgülü 23 sentyabrda verilir 2016-09-23 21:43 '16 at 21:43 2016-09-23 21:43

JQuery

 if($("#checkboxId").is(':checked')){ alert("Checked"); } 

və ya

 if($("#checkboxId").attr('checked')==true){ alert("Checked"); } 

Javascriptdə

 if (document.getElementById("checkboxID").checked){ alert("Checked"); } 
10
10 июня '13 в 16:17 2013-06-10 16:17 cavab iyarlax 10 iyun 'da 16:17' da verilir 2013-06-10 16:17

Burada jQuery istifadə edərək tam cavabdır

Mən bunu test edirəm və bu, 100% -də işləyir: D

  // when the button (select_unit_button) is clicked it returns all the checed checkboxes values $("#select_unit_button").on("click", function(e){ var arr = []; $(':checkbox:checked').each(function(i){ arr[i] = $(this).val(); // u can get id or anything else }); //console.log(arr); // u can test it using this in google chrome }); 
10
27 февр. 27 fevral tarixində 1477929 saylı cavabı verdi 2013-02-27 18:49 '13 at 06:49 PM 2013-02-27 18:49
  • 1
  • 2

tags bağlı digər suallar və ya soruşun