将值传递给Javascript函数

时间:2011-08-21 17:36:56

标签: javascript jquery

我正在调用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);                }
    });
});

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

这里有几个不同的问题。

  1. 使用alert()进行调试。这几乎总是比使用console.log()更糟糕。传递给alert的所有内容都会转换为字符串,这就是为什么您会看到"[object Object]"而不是有用的内容。切换到console.log(),您会看到有意义的内容。
  2. jQuery事件回调传递jQuery event object对象是id设置的对象。
  3. 内联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。