Если флажок установлен, тогда мне нужно только получить значение как 1; в противном случае мне нужно получить его как 0. Как это сделать с помощью jQuery?
$("#ans").val()
всегда даст мне право в этом случае:
<input type="checkbox" id="ans" value="1" />
Используйте .is(':checked')
, чтобы определить, проверено ли оно, и затем установите соответствующее значение.
$("#ans").attr('checked')
сообщит, проверен ли он. Вы также можете использовать второй параметр true/false для проверки/снятия флажка.
$("#ans").attr('checked', true);
Для комментариев используйте prop
вместо attr
, когда это доступно. Например:
$("#ans").prop('checked')
Просто используйте $(selector).is(':checked')
Возвращает логическое значение.
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;
Ответ Стефана Бринкмана превосходный, но неполный для новичков (опускает назначение переменной). Просто уточнить:
// this structure is called a ternary operator
var cbAns = ( $("#ans").is(':checked') ) ? 1 : 0;
Он работает следующим образом:
var myVar = ( if test goes here ) ? 'ans if yes' : 'ans if no' ;
Пример:
var myMath = ( 1 > 2 ) ? 'yes' : 'no' ;
alert( myMath );
Оповещения "нет"
Если это полезно, пожалуйста, подтвердите ответ Стефана Бринкмана.
Вы можете попробовать следующее:
$('#studentTypeCheck').is(":checked");
Я нашел ту же проблему раньше, надеюсь, что это решение может вам помочь. во-первых, добавьте пользовательский атрибут в свои флажки:
<input type="checkbox" id="ans" value="1" data-unchecked="0" />
напишите расширение jQuery для получения значения:
$.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;
}
};
используйте код, чтобы получить значение check-box:
$('#ans').realVal();
вы можете протестировать здесь
$('input:checkbox:checked').val(); // get the value from a checked checkbox
<input type="checkbox" id="ans" value="1" />
JQuery: var test= $("#ans").is(':checked')
и он возвращает true или false.
В вашей функции:
$test =($request->get ( 'test' )== "true")? '1' : '0';
Вы также можете использовать:
$("#ans:checked").length == 1;
function chkb(bool){
if(bool)
return 1;
return 0;
}
var statusNum=chkb($("#ans").is(':checked'));
statusNum будет равен 1, если флажок установлен, а 0, если это не так.
EDIT: вы также можете добавить DOM к функции.
function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}
var statusNum=chkb($("#ans"));
Использование:
$("#ans option:selected").val()
return
1
если он выбран
Есть несколько вариантов, например....
1. $("#ans").is(':checked')
2. $("#ans:checked")
3. $('input:checkbox:checked');
Если все эти опции возвращают true, вы можете установить значение accourdingly.
Недавно я просмотрел случай, когда мне нужно проверить значение флажка, когда пользователь нажал кнопку. Единственный правильный способ сделать это - использовать атрибут prop()
.
var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;
это сработало в моем случае, может быть, кому-то это понадобится.
Когда я пробовал .attr(':checked')
, он возвращал checked
, но мне нужно логическое значение и .val()
возвращаемое значение атрибута value
.
попробуйте это
$('input:checkbox:checked').click(function(){
var val=(this).val(); // it will get value from checked checkbox;
})
Здесь флаг имеет значение true, если отмечено иначе false
var flag=$('#ans').Attr('checked');
Снова это сделает cheked
$('#ans').Attr('checked',true);
Если вы хотите, чтобы целое значение проверялось или не пыталось:
$( "# анс: проверено" ). Длина
Вы можете получить значение (true/false) этими двумя способами
$("input[type='checkbox']").prop("checked");
$("input[type='checkbox']").is(":checked");