Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 切换开关-启用另一个按钮时禁用一个按钮_Javascript_Html_Css_Button_Toggle - Fatal编程技术网

Javascript 切换开关-启用另一个按钮时禁用一个按钮

Javascript 切换开关-启用另一个按钮时禁用一个按钮,javascript,html,css,button,toggle,Javascript,Html,Css,Button,Toggle,我想做的是禁用一个按钮,当我启用另一个按钮时(因此最多可以激活一个按钮),但我对JS的了解非常基础。任何提示都将不胜感激 /*开关-滑块周围的框*/ .开关{ 位置:相对位置; 显示:内联块; 宽度:60px; 高度:34px; } /*隐藏默认HTML复选框*/ .开关输入{ 不透明度:0; 宽度:0; 身高:0; } /*滑块*/ .滑块{ 位置:绝对位置; 光标:指针; 排名:0; 左:0; 右:0; 底部:0; 背景色:#ccc; -webkit转换:.4s; 过渡:.4s; } .滑

我想做的是禁用一个按钮,当我启用另一个按钮时(因此最多可以激活一个按钮),但我对JS的了解非常基础。任何提示都将不胜感激

/*开关-滑块周围的框*/
.开关{
位置:相对位置;
显示:内联块;
宽度:60px;
高度:34px;
}
/*隐藏默认HTML复选框*/
.开关输入{
不透明度:0;
宽度:0;
身高:0;
}
/*滑块*/
.滑块{
位置:绝对位置;
光标:指针;
排名:0;
左:0;
右:0;
底部:0;
背景色:#ccc;
-webkit转换:.4s;
过渡:.4s;
}
.滑块:之前{
位置:绝对位置;
内容:“;
高度:26px;
宽度:26px;
左:4px;
底部:4px;
背景色:白色;
-webkit转换:.4s;
过渡:.4s;
}
输入:选中+滑块{
背景色:#2196F3;
}
输入:焦点+.滑块{
盒影:0 0 1px#2196F3;
}
输入:选中+。滑块:之前{
-webkit转换:translateX(26px);
-ms变换:translateX(26px);
转化:translateX(26px);
}
/*圆形滑块*/
.圆滑{
边界半径:34px;
}
.滑块.圆形:之前{
边界半径:50%;
}

文本
文本
//获取所有输入并挂起事件处理程序
document.queryselectoral('input[type=checkbox]')).forEach(element=>element.addEventListener('click',disableOther))
功能禁用其他(事件){
//“事件”是当前事件(单击)
//“event.target”是我们单击的元素
if(event.target.checked){
//如果选中当前输入->禁用所有输入
document.querySelectorAll('input[type=checkbox]').forEach(element=>element.disabled=true)
//启用我们当前的输入
event.target.disabled=false;
}否则{
//如果未选中当前输入->启用所有输入
document.querySelectorAll('input[type=checkbox]').forEach(element=>element.disabled=false)
}
}
/*开关-滑块周围的框*/
.开关{
位置:相对位置;
显示:内联块;
宽度:60px;
高度:34px;
}
/*隐藏默认HTML复选框*/
.开关输入{
不透明度:0;
宽度:0;
身高:0;
}
/*滑块*/
.滑块{
位置:绝对位置;
光标:指针;
排名:0;
左:0;
右:0;
底部:0;
背景色:#ccc;
-webkit转换:.4s;
过渡:.4s;
}
.滑块:之前{
位置:绝对位置;
内容:“;
高度:26px;
宽度:26px;
左:4px;
底部:4px;
背景色:白色;
-webkit转换:.4s;
过渡:.4s;
}
输入:选中+滑块{
背景色:#2196F3;
}
输入:焦点+.滑块{
盒影:0 0 1px#2196F3;
}
输入:选中+。滑块:之前{
-webkit转换:translateX(26px);
-ms变换:translateX(26px);
转化:translateX(26px);
}
/*圆形滑块*/
.圆滑{
边界半径:34px;
}
.滑块.圆形:之前{
边界半径:50%;
}

文本
文本

此脚本检查是否选中了任何其他开关(添加到HTML文件末尾,就在
之前):


const switches=document.querySelectorAll(“输入[type=checkbox]”);
对于(开关常数)s.addEventListener(“更改”,检查);
功能检查(e){
//计算已检查开关的数量:
设n=0;
用于(开关常数){
如果(s.选中)n++;
}
//如果选中了多个选项(包括刚才单击的选项),请取消选中:
如果(n>1)e.target.checked=false;
}
这适用于任意数量的交换机,只能切换一个。


<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div style="text-align: center; display: inline-block;">
<label class="switch">
<strong style=" position: absolute; color:white; margin-top: -30px; margin-left: 
-10px; text-align: center; font-weight: 100"> Text</strong>
<input type="checkbox" class="checkBox" onclick="ch($(this));"> 
<span class="slider round"></span>
</label>
</div>
<div style="display: inline-block;">
<div style="text-align: center;">
<label class="switch">

<strong style=" position: absolute; color:white; margin-top: -30px; margin-left: 
-10px; text-align: center; font-weight: 100"> Text</strong>
<input type="checkbox" class="checkBox" onclick="ch($(this));">
<span class="slider round"></span>

</label>
</div>
<script>
function ch(thi){
    $('.checkBox').prop('checked',false);
    thi.prop('checked',true);   }
</script>
</body>
文本 文本 函数ch(thi){ $('.checkBox').prop('checked',false); thi.prop('checked',true);}
为什么要使用两个开关?也许你需要分组?我使用开关切换不同的联系方式谢谢!你治好了我的头痛我喜欢你的答案,谢谢,但我认为如果页面有任何其他输入复选框,它将禁用!@NarayanaReddyGurrala这就是为什么你应该在查询中更具体:
document.queryselectoral('input[type=checkbox]')
请更新您的帖子并包含更多html结构。@Smollet777谢谢,我收到了。
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div style="text-align: center; display: inline-block;">
<label class="switch">
<strong style=" position: absolute; color:white; margin-top: -30px; margin-left: 
-10px; text-align: center; font-weight: 100"> Text</strong>
<input type="checkbox" class="checkBox" onclick="ch($(this));"> 
<span class="slider round"></span>
</label>
</div>
<div style="display: inline-block;">
<div style="text-align: center;">
<label class="switch">

<strong style=" position: absolute; color:white; margin-top: -30px; margin-left: 
-10px; text-align: center; font-weight: 100"> Text</strong>
<input type="checkbox" class="checkBox" onclick="ch($(this));">
<span class="slider round"></span>

</label>
</div>
<script>
function ch(thi){
    $('.checkBox').prop('checked',false);
    thi.prop('checked',true);   }
</script>
</body>