【问题标题】:jquery, checkboxes within nested div onclick show/hide submitjquery,嵌套div中的复选框onclick显示/隐藏提交
【发布时间】:2011-06-18 18:27:44
【问题描述】:

我在购物车系统中有一个包含一系列 div 的页面。每个都是在选中复选框时的产品,如果有可用的选项和/或确认复选框,请在表单提交之前确认,然后将按钮隐藏并显示一个div,其中包含另一个复选框,当检查该复选框时,如果存在该复选框然后显示按钮。 每个 div 上的 show hide 工作正常(现有代码),所以我正在尝试创建一个函数,以便在该函数中为 onclick 事件调用。

我的问题出现的地方是检查另一个复选框 [在示例中显示为 (tmpId == "acknowledge")] 是否确实存在,并且在他们看到提交按钮之前也对其进行检查,如果没有显示提交按钮。这需要适用于他们单击 [ie("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

【问题讨论】:

  • 欢迎来到 StackOverflow。不要忘记使用代码块(问题/答案文本框顶部的大括号按钮),以便您的代码正确显示。
  • @Drackir-谢谢你和我编辑并添加了代码括号..

标签: php jquery-selectors


【解决方案1】:

我认为异常可能是由您代码中的这一行引起的:

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

在您的代码中的某个时刻,feeSID 被分配给一个对象。因此,您试图将对象用作选择器的一部分,而不是字符串。在尝试将其用作选择器的一部分之前,您需要确保 feeSID 是字符串而不是对象。

【讨论】:

  • 谢谢亚当,您对它的来源是正确的。 {$("#"+feeSID+"_checkbox:checked"} 当我们在上面的这一行点击 feeSID 时,我们得到了正确的值。所以在我到达 {var pop = $("#"+feeSID+ "_popup").length; }
  • 您知道我可以避免将其分配给对象的方法吗?也许将它分配给不同的 var,所以我总是将原始值传递给我的函数以供参考?
  • 尝试从脚本中注释掉那行代码。你仍然得到异常吗?
  • 不,如果我将其注释掉,我不会得到那个异常,你是对的,我试图将 obj 用于我的选择器的一部分。我解决了这个问题。我将为可能遇到此问题的其他人回答我自己的问题,这不是由使用 @ 符号引起的..
【解决方案2】:

这个错误是由于我试图使用 Obj 作为我的选择器的一部分引起的。正如 Adam Prax 指出的那样

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

在我的代码中,feeSID 被分配给一个对象。我通过将变量或对象重新声明为字符串来解决它,然后再使用new String(feeSID);
再次访问它 这解决了这个问题。我希望它对其他人有所帮助,我在谷歌上可以找到的所有内容都指向语法 @name="name" 的使用,这在 jQuery 中不再有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多