2011-01-31 149 views
0

我有一個頁面,在購物車系統中有一系列div。每個選項都是一個產品,當檢查複選框時,如果在表單提交之前有可用選項和/或確認複選框被確認,則隱藏該按鈕並顯示帶有另一個複選框的div,當該複選框存在時被選中然後顯示按鈕。 在每個div上的show hide工作正常(現有的代碼),所以我試圖創建一個函數在onclick事件的該函數內被調用。jquery,嵌套div內的複選框onclick顯示/隱藏提交

我的問題出現的地方是檢查另一個複選框[在示例中顯示爲(tmpId ==「acknowledge」)]是否存在,並且在它們可以看到提交按鈕之前也檢查它顯示提交按鈕。這需要爲每個產品工作,他們點擊第一個複選框[即("id= "+feeSID+"_checkbox")] ... $("#ocContainer")是隱藏的容器(提交),以顯示是否檢查正確的複選框。

每個ID的第一部分是由SQL查詢生成和傳遞給函數的變量.. 我的功能:

var feeSID = ""; 
var feeVAL = ""; 
var pop = ""; 

function countChecked(feeSID) { 
    var n = $("input:checked").val(); 
    var tmpId = $(this).attr("name"); 
    if (tmpId == "acknowledge") { 
     console.log("acknowledge Clicked <br />"); 
    } else { 
     feeVAL = $(this).attr("id"); 
    } 
    if (feeVAL == '') { 
     return; 
    } else { 
     if ($("#" + feeSID + "_checkbox:checked")) { 
      console.log("id= " + feeSID + "_checkbox"); 
      var pop = $("#" + feeSID + "_popup").length; 
      if (pop > 0) { 
       $(":checkbox").click(function() { 
        if (tmpId == "acknowledge") { 
         $("#ocContainer").show(); 
        } 
       }); 
      } else { 
       $("#ocContainer").show(); 
      } 
     } 
    } 
} 

我希望我的解釋是明確的。我得到的錯誤:
uncaught exception: Syntax error, unrecognized expression: #[object Object]_popup

+0

歡迎來到StackOverflow。不要忘記使用代碼塊(問題/答案文本框頂部的大括號按鈕),以便代碼正確顯示。 – 2011-01-31 18:09:25

+0

@Drackir-謝謝你,我編輯並添加了代碼括號。 – 2011-01-31 18:19:26

回答

0

我覺得異常可能是由這一行代碼造成的:

var pop = $("#"+feeSID+"_popup").length; 

在代碼中的某個點,feeSID被分配到一個對象。所以,你試圖將一個對象作爲你的選擇器的一部分,而不是一個字符串。在您嘗試將它用作選擇器的一部分之前,您需要確保feeSID是一個字符串而不是對象。

0

錯誤是由於我試圖使用一個Obj作爲我的選擇器的一部分引起的。正如亞當普凱曾指出

var pop = $("#"+feeSID+"_popup").length; 

在我的代碼中的一些點,feeSID被分配到一個對象。我使用new String(feeSID);
將變量或對象重新聲明爲字符串,然後再次訪問它來解決此問題。我希望它可以幫助別人,我在google上可以找到的所有內容都指向使用語法@name="name",該語法在jQuery中不再有效。