Тестирование, если флажок установлен с помощью jQuery
если флажок установлен, то мне нужно только получить значение как 1; в противном случае мне нужно получить его как 0. Как это сделать с помощью jQuery?
$("#ans").val()
всегда будет давать мне одно право в этом случае:
<input type="checkbox" id="ans" value="1" />
20 ответов
использовать .is(':checked')
чтобы определить, проверено ли это, а затем установить соответствующее значение.
$("#ans").attr('checked')
скажет вам, если он проверен. Вы также можете использовать второй параметр true/false для проверки/снятия флажка.
$("#ans").attr('checked', true);
за комментарий, используйте prop
вместо attr
при наличии. Например:
$("#ans").prop('checked')
ответ Стефана Бринкмана отличный, но неполный для начинающих (опускает назначение переменной). Просто чтобы уточнить:
// 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 );
оповещения 'нет'
если это полезно, пожалуйста, повторите ответ Стефана Бринкмана.
Я нашел ту же проблему, прежде чем, надеюсь, это решение поможет вам. сначала добавьте пользовательский атрибут к флажкам:
<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;
}
};
используйте код, чтобы получить значение флажка:
$('#ans').realVal();
вы можете проверить здесь
<input type="checkbox" id="ans" value="1" />
в jQuery :
var test= $("#ans").is(':checked')
и это возвращает true или false.
в ваши функции:
$test =($request->get ( 'test' )== "true")? '1' : '0';
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"));
есть несколько вариантов, таких как....
1. $("#ans").is(':checked')
2. $("#ans:checked")
3. $('input:checkbox:checked');
Если все эти опции возвращают true, вы можете установить значение accourdingly.
недавно я прошел через случай, когда мне нужно было проверить значение флажка, когда пользователь нажал кнопку. Единственный правильный способ сделать это-использовать
попробуй такое
$('input:checkbox:checked').click(function(){
var val=(this).val(); // it will get value from checked checkbox;
})
здесь флаг true, если установлен в противном случае false
var flag=$('#ans').attr('checked');
опять это сделает чек
$('#ans').attr('checked',true);
вы можете получить значение (true / false) с помощью этих двух методов
$("input[type='checkbox']").prop("checked");
$("input[type='checkbox']").is(":checked");
сначала проверьте, что значение проверено
$("#ans").find("checkbox").each(function(){
if ($(this).prop('checked')==true){
var id = $(this).val()
}
});
Else установите 0 стоимостью