繁体   English   中英

只选择一个复选框

[英]only select one checkbox

我想构建一个javascript,以便用户只能选择下面提到的一个选项。 你可以给我一些指示如何做到这一点,因为我是一个javascript noob。

谢谢!

这是菜单部分的图片 在此输入图像描述

<td><label for="dock_books_search_visible_online"> Visible online?</label></td>
                        <td><input type="checkbox" name="option" value="checkedVisibleOk" id="dock_books_visible_ok"  /> </td>
                        <td><label for="dock_books_search_visible_online_yes"> Yes</label></td>
                        <td><input type="checkbox" name="option" value="checkedVisibleNok" id="dock_books_visible_nok" /> </td>
                        <td><label for="dock_books_search_visible_online_no"> No</label></td>

对于从多个选项中进行Radio Buttons我们使用Radio Buttons而不是CheckBoxes

你应该使用这样的东西。

<input type="radio" name="option" value="Yes" id="yes" /> 
<input type="radio" name="option" value="No" id="no" /> 

但是如果你想反过来,只需在你的head标签中添加以下脚本:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $(':checkbox').bind('change', function() {
        var thisClass = $(this).attr('class');
        if ($(this).attr('checked')) {
            $(':checkbox.' + thisClass + ":not(#" + this.id + ")").removeAttr('checked');
        }
        else {
            $(this).attr('checked', 'checked');
        }
    });
});
</script>

这是上面的小提琴

希望这可以帮助。

你有点使用单选按钮这里是我在我的项目中使用它的javascript解决方案当搜索标准和搜索结果在数据网格中由ajax有13条记录当我检查一条记录时它禁用其余的

javascript启用的代码禁用复选框jsfiddle

<form  name="mainForm" method="GET">

   Visible online?


       <input type="checkbox" name="option" value="checkedVisibleOk" id="option"  onclick="changeCheckBox();"/>

 yes

        <input type="checkbox" name="option" value="checkedVisibleNok"     id="option" onclick="changeCheckBox();"/>

       no

</form>
<script>
var serNoChecked="";
function changeCheckBox() {
 try {

        var max = document.mainForm.option.length;
        var count = 0;

        for (var i = 0; i < max; i++) {
            if (document.mainForm.option[i].checked == true) {
                count++;
                serNoChecked = i;
            }
        }
        if (count == 1) {
            for (var i = 0; i < max; i++) {
                if (document.mainForm.option[i].checked == false) {
                    document.mainForm.option[i].disabled = true;
                }
            }
        }
        else if (count == 0) {
            for (var i = 0; i < max; i++) {
                document.mainForm.option[i].disabled = false;
            }
        }

        if (null == max) return false;
        if (count == 0) {
            return true;
        }
        else if (count > 0) {
            return false;
        }

    }
    catch (e) {
        alert(e.message);
    }
}
    </script>

这看起来像单选按钮的工作,而不是复选框。

尝试使用单选按钮,给它们相同的名称进行分组,只允许选择1:

<td>
    <label for="dock_books_search_visible_online"> Visible online?</label>
</td>
<td>
    <input type="radio" name="option" value="checkedVisibleOk" id="dock_books_visible_ok"  /> 
</td>
<td>
    <label for="dock_books_search_visible_online_yes"> Yes</label>
</td>
<td><input type="radio" name="option" value="checkedVisibleNok" id="dock_books_visible_nok" />
</td>
<td>
    <label for="dock_books_search_visible_online_no"> No</label>
</td>

检查这个JSFiddle。

function toggle(chkBox, field) {
    for ( var i = 0; i < field.length; i++) {
        field[i].checked = false;
    }
    chkBox.checked = true;
}


<td>
    <INPUT type="checkbox" name="xyz" onClick="toggle(this,document.myform.xyz);" value="${incident.incidentID}">
</td>

使用单选按钮并确保名称标签与所有选项一致,它将自动选择一个不需要额外代码或JS。

嗨,你为什么使用复选框? 复选框不适用于您需要的功能。 单选按钮非常适合您使用。

 <form>
 <input type="radio" name="sex" value="male" /> Male<br />
 <input type="radio" name="sex" value="female" /> Female
 </form> 

有关详细信息,请查看此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM