【发布时间】:2016-06-20 11:45:00
【问题描述】:
我有一个类似的代码:
<div class="answer_id" value="1" name="false">
<input id="AsnwerAnswer1" type="checkbox" value="1" name="true"></input>
Answer 1
</div>
我有 4 个类似于上面代码的答案,唯一改变的是我的 div 中的值和输入 id。
当我点击一个复选框时,选中的复选框的值是 true :
$("input:checkbox").click(function() {
var thisChecked = $(this)[0].checked;
$("input:checkbox").removeAttr('checked');
$("input:checkbox").attr('name', 'false');
$(this).attr('name', 'true');
$(this)[0].checked = thisChecked ? true : false;
});
当我点击按钮发送答案时:
$('#sendReponse').click(function(){
我想获取包含选中复选框的 div 的值(其值为 true 的那个)。
我应该添加什么:
var iReponseId = $(this).closest('.answer_id').attr('value');
顺便说一句,如果您能帮助我了解点击功能的作用,那就太好了。 据我说,这会删除所有选中的属性,因此我只能选择一个复选框,这会将每个复选框的名称设置为 false 期望选中的那个,但我不明白这一点:
$(this)[0].checked = thisChecked ? true : false;
编辑:
我这样做是为了得到我想要的:
$("input:checkbox").click(function() {
$("input:checkbox").not(this).prop('checked',false).removeAttr('class', 'chosen_answer');
$(this).attr('class', 'chosen_answer');
});
然后
$('#sendReponse').click(function(){
var iReponseId = $('.chosen_answer').closest('.answer_id').attr('value');
【问题讨论】:
-
$(this)[0].checked;===this.checked; -
$(this)[0].checked = thisChecked ? true : false;是在删除选中的属性后回滚到您以前的状态....您可以将其减少this.checked = thisChecked -
当单选按钮为此而发明时,为什么所有这些代码?
标签: javascript jquery html checkbox