[英]How to detect if a checkbox has been clicked with jquery
我有很多复选框,希望将其值添加到会话变量的数组中。 问题是我不知道复选框的ID是什么。 复选框将如下所示:
<input type="checkbox" value="102" name="tags[]" id="tag102" class="checkbox" />
<input type="checkbox" value="103" name="tags[]" id="tag103" class="checkbox" />
<input type="checkbox" value="104" name="tags[]" id="tag104" class="checkbox" />
<input type="checkbox" value="105" name="tags[]" id="tag105" class="checkbox" />
第一步是我要尝试检测一下是否单击了它们,但是我什么也没得到,也没有错误,也没有在控制台中输入任何内容。
$('input[type=checkbox]').change(function() {
console.log("box was clicked");
alert("box clicked...");
});
我究竟做错了什么。
该脚本已加载到文档就绪功能中。 在此之前,将加载最新的jquery&bootstrap3。
更新
看起来有些东西干扰了该复选框:
// type ahead search
var allclients_ajaxUrl = '[[~41]]';
$('#searchusers').select2({
minimumInputLength: 2,
ajax: {
url: allclients_ajaxUrl,
dataType: 'json',
data: function (term, page) {
return {
q2: term
};
},
results: function (data, page) {
return { results: data };
}
}
});
不知道如何或为什么会弄乱选择框。
我认为您没有将jQuery代码包装在文档就绪函数内。 尝试这个
$(document).ready(function () {
$('input[type=checkbox]').change(function() {
console.log($(this).attr('id') + "box was clicked");
alert($(this).attr('id') + " box clicked...");
});
});
使用this
关键字将仅向您提供触发事件的元素。 因此,您不必担心文档中复选框的阵列。
其次,您也可以在复选框上触发click事件。 如果要检测单击功能。 .click()
。
您根本没有将jQuery链接到您的文档。
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
这将包括文档的jQuery。
在这里看起来不错:
$(document).ready(function(){
$('input[type=checkbox]').change(function() {
console.log("box was clicked "+$(this).attr('id'));
});
});
这是一个演示
$('input[type=checkbox] ').change(function() {
if ($(this).is(':checked')) {
alert("checked for : " + this.id);
}
});
这将返回已选中复选框的id
。
使用选中的选择器http://api.jquery.com/checked-selector/
例如
$('input[type=checkbox]').click(function() {
if ($(this).is(':checked')) {
// do something when checked
} else {
// do something when unchecked
}
});
我个人将点击事件用于复选框。 他们似乎比改变更好。
此外,您可以使用this.value和this.id(在函数“ this”中引用DOM元素)访问当前单击/更改的复选框的id或value属性。
$(“ input:checked”)将返回当前选中的所有复选框和单选框。 您可以对其进行迭代,然后将值添加到数组中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.