Έχω κάποια πεδία κειμένου εισόδου στη σελίδα μου και εμφανίζω τις τιμές τους χρησιμοποιώντας JavaScript.
Χρησιμοποιώ τη συνάρτηση .set("value","")
για να επεξεργαστώ την τιμή, να προσθέσω ένα επιπλέον πεδίο checkbox και να περάσω μια τιμή.
Εδώ θέλω να ελέγξω ότι αν value == 1
, τότε αυτό το checkbox πρέπει να είναι τσεκαρισμένο. Διαφορετικά, θα πρέπει να παραμείνει μη τσεκαρισμένο.
Το έκανα αυτό χρησιμοποιώντας δύο divs, αλλά δεν αισθάνομαι άνετα με αυτό, υπάρχει κάποια άλλη λύση;
if(value == 1) {
$('#uncheck').hide();
$('#check').show();
} else{
$('#uncheck').show();
$('#check').hide();
}
Για jQuery 1.6+ :
Η .attr() έχει ξεπεραστεί για τις ιδιότητες- χρησιμοποιήστε τη νέα συνάρτηση .prop() ως:
$('#myCheckbox').prop('checked', true); // Checks it
$('#myCheckbox').prop('checked', false); // Unchecks it
Για την jQuery < 1.6:
Για να ελέγξετε/ακυρώσετε ένα πλαίσιο ελέγχου, χρησιμοποιήστε το χαρακτηριστικό checked
και αλλάξτε το. Με την jQuery μπορείτε να κάνετε:
$('#myCheckbox').attr('checked', true); // Checks it
$('#myCheckbox').attr('checked', false); // Unchecks it
Επειδή ξέρετε, σε HTML, θα έμοιαζε κάπως έτσι:
<input type="checkbox" id="myCheckbox" checked="checked" /> <!-- Checked -->
<input type="checkbox" id="myCheckbox" /> <!-- Unchecked -->
Ωστόσο, δεν μπορείτε να εμπιστευτείτε τη μέθοδο .attr() για να πάρετε την τιμή του checkbox (αν χρειαστεί). Θα πρέπει να βασιστείτε στη μέθοδο .prop().
Μπορείτε να χρησιμοποιήσετε την prop() για αυτό, καθώς Πριν από την jQuery 1.6, η μέθοδος .attr() μερικές φορές λάμβανε υπόψη τις τιμές των ιδιοτήτων κατά την ανάκτηση ορισμένων χαρακτηριστικών, γεγονός που θα μπορούσε να προκαλέσει ασυνεπή συμπεριφορά. Από την jQuery 1.6, η μέθοδος .prop()
παρέχει έναν τρόπο για τη ρητή ανάκτηση τιμών ιδιοτήτων, ενώ η μέθοδος .attr()
ανακτά χαρακτηριστικά.
var prop=false;
if(value == 1) {
prop=true;
}
$('#checkbox').prop('checked',prop);
ή απλά,
$('#checkbox').prop('checked',(value == 1));
Αποσπάσματα