无法成功检测复选框上的单击或更改事件



问题:无法成功检测复选框上的点击或更改事件。

意图:总体意图是检测更改或单击复选框,然后使用jquery的show和hide方法来显示/隐藏元素。

到目前为止,我的方法包括:

方法1:Onclick Handler HTML

<div class="col-md-1"><center>
    <label><p>Recurring</p>
    <input type="checkbox" onclick="toggleRecur()"></input></label></center>
</div>
JAVASCRIPT

function toggleRecur(){
console.log("something clicked"); }

方法2:jquery EventListenerHTML

<div class="col-md-1"><center>
     <label><p>Recurring</p>
     <input type="checkbox" id="task_recur" ></input></label></center>
  </div>
jquery Javascript/

$(document).on("checked","#task_recur",function(){         
        alert("something checked");
});

方法3:jquery Listener 2

$('input[id=task_recur]').change(function(){
if($(this).is(':checked'))
    alert("czech it");
});
不幸的是,无论在文档加载内部还是外部,上述方法都不起作用。我目前在chrome下运行。任何帮助都会非常感激!

第一选择

function toggleRecur(){
alert("something clicked"); }
<div class="col-md-1"><center>
    <label><p>Recurring</p>
    <input type="checkbox" onclick="toggleRecur()"></input></label></center>
</div>

第二个选项

document.getElementById('task_recur').onclick = function() {         
        alert("something checked");
   }
<div class="col-md-1"><center>
    <label><p>Recurring</p>
    <input type="checkbox" id="task_recur" /></label></center>
</div>

我只能看到bug,

$(document).on("change", "#task_recur", function () { // event should be change not checked
    alert("delegated event");
});

,

if($(this).is(':checked'))可以简单地替换为if(this.checked) {}

使用纯javascript:

document.getElementById('task_recur').onclick = function() {
    if (this.checked) {
        alert("Checked);
    }
};
与jquery:

$(document).on("change", "#task_recur", function(){         
    alert("something checked");
});

$('#task_recur').change(function() {
    if($(this).is(':checked'))
        alert("czech it");
});

相关内容

  • 没有找到相关文章

最新更新