javascript - 取消选中所有复选框后如何清除输入

标签 javascript jquery html checkbox

我有 5 个复选框,我想在输入标记中显示所选复选框的值。一切工作正常,但是当我取消选中所有复选框时,输入始终返回最后一个未选中复选框的值。我想要的是当我取消选中所有复选框时,输入标记应该为空。

我尝试过使用 if 语句在每个框为空时清除输入,但有时会出现意外情况。我使用 jQuery 作为 JavaScript 库。

$('.checkbox_ss').click(function() {
  var text = '';
  $('.checkbox_ss:checked').each(function() {
    text += $(this).val();
    $('#checkVal').val(text);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div style="" id="check_holder">
  <div style="text-align: center;font-weight: bolder;color: white;background: dodgerblue;line-height: 1.7rem">Check Example</div>
  <div><input type="checkbox" name="check_val" class="checkbox_ss" value="1"><label for="">value 1</label></div>
  <div><input type="checkbox" name="check_val" class="checkbox_ss" value="2"><label for="">value 2</label></div>
  <div><input type="checkbox" name="check_val" class="checkbox_ss" value="3"><label for="">value 3</label></div>
  <div><input type="checkbox" name="check_val" class="checkbox_ss" value="4"><label for="">value 4</label></div>
  <div><input type="checkbox" name="check_val" class="checkbox_ss" value="5"><label for="">value 5</label></div>
</div>
<input type="text" id="checkVal">

最佳答案

如果没有选中任何框,则您的循环不会执行任何操作。因此它会在输入中保留旧值。

您应该更新循环外的值。

$('.checkbox_ss').click(function() {
  var text = '';
  $('.checkbox_ss:checked').each(function() {
    text += $(this).val();
  });
  $('#checkVal').val(text);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div style="" id="check_holder">
  <div style="text-align: center;font-weight: bolder;color: white;background: dodgerblue;line-height: 1.7rem">Check Example</div>
  <div><input type="checkbox" name="check_val" class="checkbox_ss" value="1"><label for="">value 1</label></div>
  <div><input type="checkbox" name="check_val" class="checkbox_ss" value="2"><label for="">value 2</label></div>
  <div><input type="checkbox" name="check_val" class="checkbox_ss" value="3"><label for="">value 3</label></div>
  <div><input type="checkbox" name="check_val" class="checkbox_ss" value="4"><label for="">value 4</label></div>
  <div><input type="checkbox" name="check_val" class="checkbox_ss" value="5"><label for="">value 5</label></div>
</div>
<input type="text" id="checkVal">

关于javascript - 取消选中所有复选框后如何清除输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53881025/

相关文章:

javascript - 数据库条目中的 html 标签未呈现为 html

javascript - redux 函数 'connect(mapStateToProps)(ConnectedList)' 的名称(类型)是什么

html - Firefox 的 CSS 边距

javascript - 邮政编码生成器 JQuery

php - 为什么这个 jQuery 幻灯片不能正常工作?

javascript - 如何在设置最大高度时使图像在水平方向上响应

javascript - Bootstrap 选择器显示 :Uncaught TypeError: Cannot set property '_menu' of undefined

javascript - 使用 Javascript 将动态链接嵌套到动态列表中

javascript - 通过调整窗口大小来缩放和维护 DIV 位置

javascript - 如何在 VSCode 中设置 pathMapping 以调试 Snowpack 应用程序