Jeśli pole wyboru jest zaznaczone, muszę tylko uzyskać wartość 1; w przeciwnym razie muszę uzyskać wartość 0. Jak to zrobić za pomocą jQuery?
$("#ans").val()
zawsze da mi jedno prawo w tym przypadku:
<input type="checkbox" id="ans" value="1" />
Jeśli pole wyboru jest zaznaczone, muszę tylko uzyskać wartość 1; w przeciwnym razie muszę uzyskać wartość 0. Jak to zrobić za pomocą jQuery?
$("#ans").val()
zawsze da mi jedno prawo w tym przypadku:
<input type="checkbox" id="ans" value="1" />
Odpowiedzi:
Użyj, .is(':checked')
aby ustalić, czy jest zaznaczone, a następnie odpowiednio ustaw swoją wartość.
Po prostu użyj $(selector).is(':checked')
Zwraca wartość logiczną.
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;
Odpowiedź Stefana Brinkmanna jest doskonała, ale dla początkujących niepełna (pomija przypisanie zmiennej). Aby wyjaśnic:
// this structure is called a ternary operator
var cbAns = ( $("#ans").is(':checked') ) ? 1 : 0;
Działa to tak:
var myVar = ( if test goes here ) ? 'ans if yes' : 'ans if no' ;
Przykład:
var myMath = ( 1 > 2 ) ? 'yes' : 'no' ;
alert( myMath );
Alerty „nie”
Jeśli jest to pomocne, proszę głosować za odpowiedzią Stefana Brinkmanna.
Możesz spróbować:
$('#studentTypeCheck').is(":checked");
Znalazłem już ten sam problem, mam nadzieję, że to rozwiązanie może ci pomóc. najpierw dodaj niestandardowy atrybut do swoich pól wyboru:
<input type="checkbox" id="ans" value="1" data-unchecked="0" />
napisz rozszerzenie jQuery, aby uzyskać wartość:
$.fn.realVal = function(){
var $obj = $(this);
var val = $obj.val();
var type = $obj.attr('type');
if (type && type==='checkbox') {
var un_val = $obj.attr('data-unchecked');
if (typeof un_val==='undefined') un_val = '';
return $obj.prop('checked') ? val : un_val;
} else {
return val;
}
};
użyj kodu, aby uzyskać wartość pola wyboru:
$('#ans').realVal();
możesz przetestować tutaj
Możesz także użyć:
$("#ans:checked").length == 1;
Posługiwać się:
$("#ans option:selected").val()
return
1
jeśli jest zaznaczone
function chkb(bool){
if(bool)
return 1;
return 0;
}
var statusNum=chkb($("#ans").is(':checked'));
statusNum wyniesie 1, jeśli pole wyboru jest zaznaczone, i 0, jeśli nie jest zaznaczone.
EDYCJA: Możesz również dodać DOM do funkcji.
function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}
var statusNum=chkb($("#ans"));
Ostatnio natrafiłem na przypadek, w którym potrzebowałem sprawdzić wartość pola wyboru, gdy użytkownik kliknął przycisk. Jedynym właściwym sposobem na to jest użycie prop()
atrybutu.
var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;
to zadziałało w moim przypadku, może ktoś będzie tego potrzebował.
Kiedy próbowałem .attr(':checked')
zwrócił, checked
ale chciałem wartość logiczną i .val()
zwrócił wartość atrybutu value
.
Istnieje kilka opcji, takich jak ...
1. $("#ans").is(':checked')
2. $("#ans:checked")
3. $('input:checkbox:checked');
Jeśli wszystkie te opcje zwrócą wartość true, można odpowiednio ustawić wartość.
Spróbuj tego
$('input:checkbox:checked').click(function(){
var val=(this).val(); // it will get value from checked checkbox;
})
Tutaj flaga jest prawdą, jeśli zaznaczono inaczej fałsz
var flag=$('#ans').attr('checked');
Znowu to sprawi, że zostaniesz sprawdzony
$('#ans').attr('checked',true);
$("#id").prop('checked') === true ? 1 : 0;
Najpierw sprawdź, czy wartość jest sprawdzana
$("#ans").find("checkbox").each(function(){
if ($(this).prop('checked')==true){
var id = $(this).val()
}
});
W przeciwnym razie ustaw wartość 0