Javascript 如何检测是否使用jquery单击了复选框
我有许多复选框,希望将的值添加到会话变量的数组中。问题是我不知道复选框的ID是什么。复选框将如下所示:Javascript 如何检测是否使用jquery单击了复选框,javascript,jquery,Javascript,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
<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" />
我做错了什么
脚本加载到文档就绪函数中。
在此之前加载最新的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 };
}
}
});
不确定这将如何或为什么会弄乱选择框。在这里似乎很好:
$(document).ready(function(){
$('input[type=checkbox]').change(function() {
console.log("box was clicked "+$(this).attr('id'));
});
});
我认为您没有将jQuery代码包装到document ready函数中。试试这个
$(document).ready(function () {
$('input[type=checkbox]').change(function() {
console.log($(this).attr('id') + "box was clicked");
alert($(this).attr('id') + " box clicked...");
});
});
使用this
关键字将仅为您提供触发事件的元素。因此,您不必担心文档中的复选框数组
其次,您还可以触发复选框上的单击事件。如果要检测单击功能<代码>。单击()
或
您根本没有将jQuery链接到文档
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
这将包括文档的jQuery。$(“输入:选中”)将返回当前选中的所有复选框和单选框。您可以对其进行迭代,然后将值添加到数组中。这里是一个
$('input[type=checkbox] ').change(function() {
if ($(this).is(':checked')) {
alert("checked for : " + this.id);
}
});
这将返回选中的复选框的id
。使用选中的选择器
例如
我个人使用点击事件作为复选框。它们似乎比改变更有效
此外,您还可以使用this.value和this.id(在函数“this”中指的是DOM元素)访问当前单击/更改的复选框的id或value属性。脚本是包装在DOM就绪函数中还是在HTML末尾?这很奇怪,因为这两个(单击/更改)都被触发了:。您使用的是哪个版本的jquery?您可能需要将其包装到document中。ready函数是的,在加载[latest]jquery之后,我将其放入doc ready函数中。是的,但每次其中一个值发生变化时,您都必须在复选框上进行交互。不幸的是,这让我们又回到了如何附加
.change()
事件处理程序的问题上……按照我理解问题的方式,他似乎只需要获取值。我不确定他是否需要实时更新,而且有人已经发布了该解决方案,所以这可能会有所帮助。我复制并粘贴了您在那里的内容(doc ready中的内容)&我看到您的小提琴工作正常,我的不行!控制台中没有错误或任何东西。是否包含JS库?是-请参阅文章的更新。不知怎么的,其他东西正在干扰复选框。对不起-你的确实有效,我错过了它正在登录到控制台。。。但请看更新后的帖子。其他东西正在干扰选择框。
$('input[type=checkbox] ').change(function() {
if ($(this).is(':checked')) {
alert("checked for : " + this.id);
}
});
$('input[type=checkbox]').click(function() {
if ($(this).is(':checked')) {
// do something when checked
} else {
// do something when unchecked
}
});