2011-01-31 145 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中不再有效。