我正在调用jQuery函数,但是alert函数显示[object Object]。检查值有效,但不是传递的id值。
这是对从html输出中获取的函数的调用:
<td class="myGroups">
<input class="chkSubscribed" type="checkbox" onclick="UpdateSubscription(2)" name="subscribed">
</td>
这是javascsript函数:
$(".chkSubscribed").change(function(id) {
alert(id);
var chkd=0;
var groupid=id;
if (this.checked) { chkd=1; }
$.ajax({
type:"POST",
url:"resources/updateSubscribe.php",
data: { group_id: groupid, checkval: chkd },
success: function(){
alert("Account updated!" + "chkval=" + chkd + " id=" + groupid); }
});
});
感谢您的帮助!
答案 0 :(得分:3)
这里有几个不同的问题。
alert()
进行调试。这几乎总是比使用console.log()
更糟糕。传递给alert
的所有内容都会转换为字符串,这就是为什么您会看到"[object Object]"
而不是有用的内容。切换到console.log()
,您会看到有意义的内容。event
object。 该对象是id
设置的对象。onclick
处理程序绝对没有与您使用jQuery绑定的change
处理程序。答案 1 :(得分:3)
你做错了。
要么想要调用函数,要么想要使用更改事件。
如果要调用函数,请按如下方式创建函数:
function moo(id) {
//code here
}
如果您想使用更改事件来执行此操作,您可以为输入提供所需数字的ID,如下所示:
<input id="2" class="chkSubscribed" type="checkbox" name="subscribed">
然后你的javascript应如下所示:
$(".chkSubscribed").change(function() {
id=this.id;
//and the rest of the code as you wrote
});
答案 2 :(得分:0)
jQuery函数change()
将传递事件对象,而不是已更改对象的id - 您将其视为当前的id。