javascript - 为什么单击元素会提示单击它旁边的复选框?
问题描述
我有以下代码,其中包含打开模式窗口的问号和右侧带有自己标签的复选框。我的问题是,每次我点击问号打开模态窗口时,我发现复选框也被点击了。
<!DOCTYPE html >
<html lang="en" style="background: #fffff0;">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" media="all" href="upload.css">
<script type=text/javascript src="https://code.jquery.com/jquery-3.4.1.js"></script>
</head>
<body ><div class="form-group">
<label class="control-label col-md-4 col-lg-3" for="vertreterCheckbox" id="vertreterLbl">
<div class="inline-help form-label" data-help="<b>Sie
</div>
" data-heading="Wie kann ich verdeutlichen, dass ich lediglich als Stellvertreter auftrete?" data-help-key="offers.deputy"><i onClick="keyDown(vertreterModal);myFunction('vertreterModal','vertreterOK')" class="fa fa-question-circle-o" id="vertreterHilfe"></i></div>in Vertretung</label>
<div class="col-md-8 col-lg-9">
<div class="checkbox">
<input name="offer[deputy]" type="hidden" value="0">
<input type="checkbox" value="1" name="offer[deputy]" id="vertreterCheckbox">
<label for="vertreterCheckbox" id="vertreterCheckboxLbl">in Vertretung</label>
</div>
</div>
</div>
<script src="uploadScript.js" data-turbolinks-track="reload"></script>
</body>
</html>
我尝试使用以下 .js 代码将复选框恢复到以前的状态:
if(event.target.id==="vertreterHilfe"){
if(document.getElementById("vertreterCheckbox").checked===true){
document.getElementById("vertreterCheckbox").checked=false
}else{
document.getElementById("vertreterCheckbox").checked=true
}
}
但我并不真正了解 html/javascript 编程,并且觉得这不是一个很好的解决方案。我宁愿找出导致问题行为的原因并改变它,而不是一个肮脏的解决方法。我该怎么做?
解决方案
推荐阅读
- python - 使用注释#'s 作为装饰以获得更好的视觉识别 - 这是不好的做法吗?
- python - TensorFlow 初始化给出了所有的
- mysql - SSMS SQL - 将表中的一行与上一行进行比较 - 状态更改
- css - Safari - “输入搜索”导致视口向左推
- cas - CAS 5.3.1 和随机 404
- ios - 如何使用 UISlider 更新 UIView 宽度?
- reactjs - React-navigation:在 switch navigator 中嵌套堆栈导航器和选项卡导航器会产生 2 个标题
- sql - 检索 PostgreSQL 中日期范围内的记录
- python - 通过泰勒展开估计 pi 的错误
- julia - 在 Julia 中将标记形状提供为 Int