如果仅首次选中复选框,则会收到消息

时间:2017-03-01 14:42:29

标签: javascript jquery checkbox

如果只是第一次选中复选框,我想执行一个功能。有可能吗?

使用:

this.on('buuttonCheckBox:set', function(){
  //do the work
 })

this.on('buuttonCheckBox:change', function(){
  //do the work
 })

或与Jquery:

  $('#checkbox1').click(function() {
    if (!$(this).is(':checked')) {
        return confirm("Are you sure?");
    }
});

3 个答案:

答案 0 :(得分:2)

假设该框未选中,请使用one(不是one,而不是on)。它附加了一个事件处理程序,它在第一个事件中删除。

尝试滴答,然后解开,然后勾选:

$("#cb").one("click", function() {
  console.log("First and only notification");
});
<label><input id="cb" type="checkbox"> Click me</label>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

或者,当然,只需跟踪; jQuery的data是一种方便的方法:

$("#cb").on("click", function() {
  console.log("Clicked");
  var $this = $(this);
  if (this.checked && !$this.data("seen")) {
    $this.data("seen", true);
    console.log("The one and only notification");
  }
});
<label><input id="cb" type="checkbox"> Click me</label>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:1)

实现一个布尔变量,如果已经检查过信息,它将保留信息。

&#13;
&#13;
var wasChecked = false;
$('#checkbox1').click(function() {
    if (!wasChecked) {
        alert("Are you sure?");
        wasChecked = true;
    }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='checkbox' id='checkbox1'>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

更改事件添加 EventListener 函数,并在函数内部删除 EventListener

&#13;
&#13;
function one(){
  document.getElementById('checkbox1').removeEventListener('change',one);
  return confirm("Are you sure");
}
document.getElementById('checkbox1').addEventListener('change',one);
&#13;
<input type="checkbox" id="checkbox1" value="Check" />
&#13;
&#13;
&#13;