js checkbox 单选

本文介绍了一项关于用户在特定网站上预订酒店习惯的调研问卷。包括预订的酒店星级、预订频率及预订目的等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<h3>5. 如果您在***网预订过酒店,预订过的是几星级的酒店?(可多选)
</h3>
<div id="item5">
<input name="hotelStar" id="hotelStar-1" value="1" type="checkbox">经济型  
<input name="hotelStar" id="hotelStar-2" value="2" type="checkbox">三星级  
<input name="hotelStar" id="hotelStar-3" value="3" type="checkbox">四星级       
<input name="hotelStar" id="hotelStar-4" value="4" type="checkbox">五星级  
<input name="hotelStar" id="hotelStar-5" value="5" type="checkbox">没有预订过酒店
<span id="hotelStar-error">  
</span></div>  
<h3>6. 如果您在***网预订过酒店,平均隔多久在本网站上预订一次?</h3>
<div id="item6">
<input name="bookInterval" id="bookInterval-1" value="1" type="radio">1周      
<input name="bookInterval" id="bookInterval-2" value="2" type="radio">1月       
<input name="bookInterval" id="bookInterval-3" value="3" type="radio">1季度      
<input name="bookInterval" id="bookInterval-4" value="4" type="radio">1年      
<input name="bookInterval" id="bookInterval-5" value="5" type="radio">&gt;1年      
<input name="bookInterval" id="bookInterval-6" value="6" type="radio">没有预订过酒店
<span id="bookInterval-error"> 
</span></div> 
。。。
<h3>12. 在本网站您主要为谁预订酒店?(可多选)</h3>
<div id="item12">
<input name="orderFor" id="orderFor-1" value="1" type="checkbox">自己旅游  
<input name="orderFor" id="orderFor-2" value="2" type="checkbox">自己出差  
<input name="orderFor" id="orderFor-3" value="3" type="checkbox">家人或朋友  
<input name="orderFor" id="orderFor-4" value="4" type="checkbox">同事  
<input name="orderFor" id="orderFor-5" value="5" type="checkbox">代为客户预订  
<input name="orderFor" id="orderFor-6" value="6" type="checkbox">没有预订过酒店
<span id="orderFor-error">  
</span></div>
 

 

选择一个页面上的多个元素(控件):

选择 item5 ,item12,item13 下的所有的 checkbox ,注册 click 事件

$("#item5 > input:checkbox,

#item12 > input:checkbox,

#item13 > input:checkbox").click(checkBoxClickHandler);

 

// 当选择预定的次数是 1 次,变 checkbox 为单选。

function checkBoxClickHandler(){

// 获取name = “bookTimes” 的元素中被选中的那个元素的value 的值

times = $('input[@name=bookTimes][@checked]').val();

  if(times == null || times != 2){

     return;

  }

// 取被点击的元素的父亲元素的id

  var parentId = $(this).parent().attr("id");

// 取父亲元素下的所有的checkbox

  checkboxs = $("#" + parentId + " > input:checkbox");

// 如果被单击的checkbox 没有被选中

if($(this).attr("checked") == false){

// 所有的checkbox 可选

  checkboxs.removeAttr('disabled');

  return;

  }

// 除了被选中之外的所有checkbox 不可用,disabled

  checkboxs.attr('disabled',true);

  $(this).removeAttr('disabled');

}

 

 

通常情况下,使用 checkbox 元素来实现单选功能并不是最佳选择,因为 checkbox 元素本身就是用来表示多选的。 但是,如果你非常需要用 checkbox 元素来实现单选功能,可以使用以下两种方法: 1. 通过设置同名的 checkbox 元素的 onchange 事件,当其中一个 checkbox 被选中时,将其它 checkbox 的选中状态取消。 ```html <label> <input type="checkbox" name="choice" value="option1" onchange="checkOnlyOne(this)"> Option 1 </label> <label> <input type="checkbox" name="choice" value="option2" onchange="checkOnlyOne(this)"> Option 2 </label> <label> <input type="checkbox" name="choice" value="option3" onchange="checkOnlyOne(this)"> Option 3 </label> <script> function checkOnlyOne(currentCheckbox) { const checkboxes = document.querySelectorAll('input[name="' + currentCheckbox.name + '"]'); for (const checkbox of checkboxes) { if (checkbox !== currentCheckbox) { checkbox.checked = false; } } } </script> ``` 以上代码创建了三个 checkbox 元素,它们的 name 属性值都为 `"choice"`,表示它们属于同一组。当其中一个 checkbox 被选中时,将其它 checkbox 的选中状态取消。具体实现是通过 onchange 事件调用 checkOnlyOne() 函数,该函数首先获取同名的所有 checkbox 元素,然后遍历它们,将除当前 checkbox 外的其它 checkbox 的选中状态设置为 false。 2. 通过设置同名的 radio 元素,使用 radio 元素来实现单选功能。 ```html <label> <input type="radio" name="choice" value="option1"> Option 1 </label> <label> <input type="radio" name="choice" value="option2"> Option 2 </label> <label> <input type="radio" name="choice" value="option3"> Option 3 </label> ``` 以上代码创建了三个 radio 元素,它们的 name 属性值都为 `"choice"`,表示它们属于同一组。radio 元素默认就是单选的,所以不需要任何 JavaScript 代码来实现。当其中一个 radio 元素被选中时,其它 radio 元素的选中状态会自动取消。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值