Javascript中的checkbox和radio注意事项

在练习这两个控件的时候发现一个问题,看下面的例子

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

    <title>Untitled Page</title>

    <script language=javascript type="text/javascript">

    var choose = 0;

    function rad_onclick(answer) {

        choose = answer;

        if (answer == 2)

            alert("竟然答对了");

        else

            alert("这都不会,还选" + document.form1.lj[answer].value);

    }

    function but_onclick() {

        if (choose == 2)

            alert("竟然答对了");

        else

            alert("这都不会,还选" + document.form1.lj[choose].value);

    }

    </script>

</head>

<body>

<form name="form1">

      勒布朗 詹姆士的英文全称是<br />

      Lebrom james

      <input type="radio" name="lj" value="Lebrom james" οnclick="return rad_onclick(0)" /><br />

      LeBron james

      <input type="radio" name="lj" value="LeBron james" οnclick="return rad_onclick(1)" /><br />

      LeBron James

      <input type="radio" name="lj" value="LeBron James" οnclick="return rad_onclick(2)" /><br />

      leBron James

      <input type="radio" name="lj" value="leBron James" οnclick="return rad_onclick(3)" /><br />

   <input type="button" name="answer" value="Answer" οnclick=" return but_onclick()" />

</form>

</body>

</html>

注意高亮的部分,如果把这两个函数的名称改为rad(),去掉onclick,checkbox和radio控件就不能发挥作用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通常情况下,使用 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、付费专栏及课程。

余额充值