无法清除复选框

时间:2015-05-13 17:31:02

标签: javascript jquery html

复选框未在我的Chrome扩展程序中清除...

这是我的javascript / HTML:

MATLAB
$('#clearAll').click(function() {
  $(':checkbox').each(function() {
    $(this).removeAttr('checked');
    $('input[type="checkbox"]').prop('checked', false);
  })
});

事情是,当你在这里运行时,它看起来运行正常,但它不在我的Chrome扩展程序中,我正在努力,而我无法弄清楚为什么......

2 个答案:

答案 0 :(得分:1)

您正在使用jQuery v 1.2.3,它不支持prop方法。

升级到至少1.6。

然后你可以简单地做:

$('#clearAll').click(function() {
  $('input[type="checkbox"]').prop('checked', false);
});

此外,最好将锚点(a)用于预期目的 - 带你去某个地方。按钮可能更适合清除复选框:

<button id="clearAll">Clear All</button>

<强>段

&#13;
&#13;
$('#clearAll').click(function() {
  $('input[type="checkbox"]').prop('checked', false);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>

<head>

  <a href="index.html">Back</a>
  </br>
  <title>Segmenting to Partners</title>
  <meta content="text/html; charset=UTF-8" http-equiv="content-type">
  <style type="text/css">
    body {
      max-width: 300px;
      min-width: 300px;
      margin: 40px;
    }
  </style>
</head>

<body>
  <h2 style="color:red"><u>blah</u></h2>
  <button id="clearAll">Clear All</button>
  <p class="c1"><span class="c9 c2">Workflow</span>
  </p>
  <input type="checkbox" name="Solved Issue" value="Solved initial issue">Solve initial issue</br>
  <input type="checkbox" name="" value="">blah blah blah blah</br>

  <input type="checkbox" name="Solved Issue" value="Solved initial issue"><span class="c2">options 3</span>
  </br>
  <input type="checkbox" name="Solved Issue" value="Solved initial issue"><span class="c2">option 4</span>
  </li>
</body>

</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您在使用该代码时遇到了一些问题:

  1. 您的jQuery版本不支持prop方法。
  2. 直到v1.6,

    prop才被添加到jQuery中。对于您正在使用的版本,您将使用attr方法。

    1. 你已经为你想要做的事情提供了太多的逻辑。 :)
    2. 您需要的逻辑是检索所有复选框并更改其checked值。您拥有的内容检索所有复选框,循环显示每个复选框,更改checked值,再次检索所有复选框,并再次更改其checked值。

      您正在以正确的方式前进,但看起来您的代码随着您尝试进行故障排除而增长。 :)这应该照顾你想要做的事情:

      $("#clearAll").click(function() {
          $(":checkbox").attr("checked", false);
      });
      

      编辑:我刚刚看到了关于压制a元素默认行为的其他评论。我首选的方法是将href属性设置为javascript: void(0);,如下所示:

        <a id="clearAll" href="javascript: void(0);">Clear All</a>
      

      这会阻止跨浏览器(包括旧版本的IE)链接的默认点击操作。