preverjanje / odkljukanje potrditvenega polja z uporabo jquery?

Na strani imam nekaj vnosnih besedilnih polj in njihove vrednosti prikazujem z uporabo JavaScripta.

Uporabljam funkcijo .set("value","") za urejanje vrednosti, dodajanje dodatnega potrditvenega polja in posredovanje vrednosti.

Tu želim preveriti, da če vrednost == 1, potem mora biti to potrditveno polje označeno. V nasprotnem primeru mora ostati odkljukano.

To sem naredil z uporabo dveh divov, vendar mi to ne ustreza, ali obstaja kakšna druga rešitev?

if(value == 1) {
    $('#uncheck').hide();
    $('#check').show();
} else{
    $('#uncheck').show();
    $('#check').hide();
}
Rešitev

Za jQuery 1.6+ :

.attr() je za lastnosti zastarela; namesto nje uporabite novo funkcijo .prop() kot:

$('#myCheckbox').prop('checked', true); // Checks it
$('#myCheckbox').prop('checked', false); // Unchecks it

Za jQuery < 1.6:

Če želite potrditi/odkljukati potrditveno polje, uporabite atribut checked in ga spremenite. Z jQueryjem lahko naredite:

$('#myCheckbox').attr('checked', true); // Checks it
$('#myCheckbox').attr('checked', false); // Unchecks it

Ker veste, v jeziku HTML bi bilo to videti nekako takole:

<input type="checkbox" id="myCheckbox" checked="checked" /> 
<input type="checkbox" id="myCheckbox" /> 

Vendar metodi .attr() ne morete zaupati, da bo pridobila vrednost potrditvenega polja (če jo potrebujete). Zanesti se boste morali na metodo .prop().

Komentarji (16)

Za to lahko uporabite metodo prop(), saj je metoda .attr() pred izdajo različice 1.6 pri pridobivanju nekaterih atributov včasih upoštevala vrednosti lastnosti, kar je lahko povzročilo nekonsistentno obnašanje. Od različice jQuery 1.6** metoda .prop() omogoča izrecno pridobivanje vrednosti lastnosti, medtem ko metoda .attr() pridobiva atribute.

var prop=false;
if(value == 1) {
   prop=true; 
}
$('#checkbox').prop('checked',prop);

ali preprosto,

$('#checkbox').prop('checked',(value == 1));

Snippet

$(document).ready(function() {
  var chkbox = $('.customcheckbox');
  $(".customvalue").keyup(function() {
    chkbox.prop('checked', this.value==1);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<h4>This is a domo to show check box is checked
if you enter value 1 else check box will be unchecked </h4>
Enter a value:
<input type="text" value="" class="customvalue">
<br>checkbox output :
<input type="checkbox" class="customcheckbox">
Komentarji (0)

Stanje potrditvenega polja lahko nastavite na podlagi vrednosti:

$('#your-checkbox').prop('checked', value == 1);
Komentarji (1)