我有一个页面,在购物车系统中有一系列div。每个都是产品,当选中复选框时,如果有可用选项和/或确认复选框在表单提交之前被确认,则保持按钮隐藏并显示一个div,其中包含另一个复选框,当选中该复选框时(如果存在)然后显示按钮。 每个div上的show hide工作正常(现有代码),所以我正在尝试创建一个在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 :(得分:0)
我认为异常可能是由代码中的这一行引起的:
var pop = $("#"+feeSID+"_popup").length;
在代码中的某个时刻,feeSID被分配给一个对象。因此,您尝试将对象用作选择器的一部分而不是字符串。在尝试将feeSID用作选择器的一部分之前,您需要确保feeSID是字符串而不是对象。
答案 1 :(得分:0)
错误是由于我尝试将Obj用作选择器的一部分而引起的。正如Adam Prax指出的那样
var pop = $("#"+feeSID+"_popup").length;
在我的代码中的某个时刻,feeSID被分配给一个对象。我通过使用new String(feeSID);
再次访问变量或对象作为字符串来解决它
这解决了这个问题。我希望它可以帮助其他人,我在google上找到的所有内容都指向使用语法@name="name"
,这在jQuery中不再是有效的语法。