我想在一个有问题和三个可能答案的网站上进行调查。
问题是我在检查/取消选中时遇到问题,我想只检查一个答案,所以如果用户点击答案并且他已经检查了另一个,那么它只保留最后一个。
以下是我所做的:
$("input:checkbox").click(function() {
if($(this).is(':checked')){
var iSurveyId = $(this).closest('div').attr('name');
var iAnswerId = $(this).closest('p').attr('value');
var bIsChecked = 'true';
如果用户点击复选框,我将获得我的div名称中的调查ID以及我的段落名称中的答案ID。
我使用的是jQuery 1.1.12,所以我无法使用每个函数作为例子,我不能使用.prop()。
答案 0 :(得分:0)
您可以使用输入类型广播而不是复选框,以便所有用户只能选择一个答案,或者首先清除所有复选框
$("input:checkbox").click(function() {
$('input:checkbox').removeAttr('checked');
$(this).attr('checked', 'checked');
}
上面应该从所有选择框中删除checked属性并将checked属性分配给单击的属性,或者如果您有多个问题,每个问题都有多个答案,您可以将复选框放在div中并将代码更改为:
$("input:checkbox").click(function() {
$('#div_id input:checkbox').removeAttr('checked');
$(this).attr('checked', 'checked');
}
答案 1 :(得分:0)
使用这个简单的代码
$("input:checkbox").click(function() {
var thisChecked = $(this)[0].checked;
$("input:checkbox").removeAttr('checked');
if (thisChecked)
$(this).attr("checked", true);
else
$(this).attr("checked", false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<div>
<input type="checkbox" />
<span>Item 1</span>
</div>
<div>
<input type="checkbox" />
<span>Item 2</span>
</div>
<div>
<input type="checkbox" />
<span>Item 3</span>
</div>
<div>
<input type="checkbox" />
<span>Item 4</span>
</div>