2011-08-21 119 views
1

我正在調用jQuery函數,但警報函數顯示[object Object]。檢查值有效,但不是傳遞的id值。將值傳遞給Javascript函數

這裏的呼叫從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

你做錯了。

要麼調用一個函數,要麼想要使用change事件。

如果要調用一個函數創建一個函數如下:

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 
}); 
+0

這做到了。謝謝! – matt

3

這裏有幾個不同的問題。

  1. 使用alert()進行調試。這幾乎總是比使用console.log()差。傳遞到alert的所有內容都將轉換爲字符串,這就是爲什麼您看到"[object Object]"而不是有用的東西。切換到console.log(),你會看到有意義的東西。
  2. jQuery事件回調通過了一個jQuery event object對象是id被設定。
  3. 內聯onclick處理程序有絕對沒有處理您使用jQuery綁定的change處理程序。
0

jQuery函數change()將傳遞事件對象,而不是被更改的對象的id - 您將它當作它當前的id對待。