verificați / debifați caseta de selectare folosind jquery?

Am niște câmpuri de text de intrare în pagina mea și sunt afișate valorile lor folosind JavaScript.

Eu sunt, folosind .set("valoarea","") funcție pentru a edita valoarea, se adaugă un plus de selectare câmp, și să treacă o valoare.

Aici vreau să verificați dacă valoarea == 1`, atunci această casetă ar trebui să fie verificate. În caz contrar, acesta ar trebui să rămână necontrolată.

Am făcut acest lucru prin utilizarea a două divs, dar nu mă simt confortabil cu asta, nu există nici o altă soluție?

if(value == 1) {
    $('#uncheck').hide();
    $('#check').show();
} else{
    $('#uncheck').show();
    $('#check').hide();
}
Soluția

Pentru jQuery 1.6+ :

.attr() este depasit de proprietăți; utilizarea la nou .prop() funcția în loc ca:

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

Pentru jQuery < 1.6:

Pentru a verifica/debifați o casetă de selectare, folosiți atributul "verificat" și de a schimba asta. Cu jQuery puteți face:

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

Că știi, în HTML, ar arata ceva de genul:

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

Cu toate acestea, nu este de încredere .attr() metoda pentru a obține valoarea de selectare (dacă ai nevoie). Va trebui să se bazeze în .prop() metoda.

Comentarii (16)

Puteți utiliza prop() pentru acest lucru, deoarece Înainte de jQuery 1.6, la .attr() metoda, uneori, a avut valorile de proprietate în considerare atunci când preluarea unor atribute, care ar putea provoca comportament inconsecvent. Cum de jQuery 1.6, de .prop() metoda oferă o modalitate de a prelua în mod explicit valorile de proprietate, în timp ce .attr() preia atribute.

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

sau pur și simplu,

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

Fragment

$(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">
Comentarii (0)

Puteți seta starea de selectare bazat pe valoare:

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