Php jquery,嵌套div onclick show/hide submit中的复选框
我有一个在购物车系统中有一系列div的页面。选中复选框时,如果在表单提交之前有可用选项和/或要确认的确认复选框,则每个都是产品,然后隐藏按钮并显示一个带有另一个复选框的div,选中该复选框(如果存在),然后显示按钮。 每个div上的show-hide工作正常(现有代码),因此我试图创建一个函数,以便在该函数中为onclick事件调用 出现问题的地方是检查另一个复选框[在示例中显示为(tmpId==“acknowledge”)]是否存在,如果没有显示submit按钮,则在他们看到submit按钮之前也检查该复选框。这需要适用于他们在[iePhp jquery,嵌套div onclick show/hide submit中的复选框,php,jquery-selectors,Php,Jquery Selectors,我有一个在购物车系统中有一系列div的页面。选中复选框时,如果在表单提交之前有可用选项和/或要确认的确认复选框,则每个都是产品,然后隐藏按钮并显示一个带有另一个复选框的div,选中该复选框(如果存在),然后显示按钮。 每个div上的show-hide工作正常(现有代码),因此我试图创建一个函数,以便在该函数中为onclick事件调用 出现问题的地方是检查另一个复选框[在示例中显示为(tmpId==“acknowledge”)]是否存在,如果没有显示submit按钮,则在他们看到submit按钮之
(“id=“+feeSID+”)
]上单击第一个复选框的每个产品$(“#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();
}
}
}
}
var feeSID=”“;
var feeVAL=“”;
var pop=“”;
函数countChecked(feeSID){
var n=$(“输入:选中”).val();
var tmpId=$(this.attr(“name”);
如果(tmpId=“确认”){
console.log(“确认点击
”);
}否则{
feeVAL=$(this.attr(“id”);
}
如果(feeVAL=''){
返回;
}否则{
如果($(“#”+feeSID+“_复选框:选中”)){
log(“id=“+feeSID+”_复选框”);
var pop=$(“#”+feeSID+“#pop”)。长度;
如果(弹出>0){
$(“:复选框”)。单击(函数(){
如果(tmpId=“确认”){
$(“#ocContainer”).show();
}
});
}否则{
$(“#ocContainer”).show();
}
}
}
}
我希望我的解释清楚。我得到一个错误:未捕获异常:语法错误,无法识别的表达式:#[object object]\u弹出窗口
我认为异常可能是由代码中的这一行引起的:
var pop = $("#"+feeSID+"_popup").length;
在代码中的某个时刻,feeSID被指定给一个对象。因此,您尝试将对象用作选择器的一部分,而不是字符串。在尝试将feeSID用作选择器的一部分之前,需要确保feeSID是字符串而不是对象。该错误是由于我尝试将Obj用作选择器的一部分而导致的。正如亚当·普拉克斯所指出的那样
var pop = $("#"+feeSID+"_popup").length;
在我的代码中,feeSID被分配给一个对象。我通过在使用newstring(feeSID)再次访问变量或对象之前将其重新声明为字符串来解决这个问题代码>
这就解决了问题。我希望这对其他人有所帮助,我在google上找到的所有信息都指向使用了语法@name=“name”
,这在jQuery中不再是有效的语法。欢迎使用StackOverflow。不要忘记使用代码块(问题/答案文本框顶部的花括号按钮),以便正确显示您的代码。@Drackir感谢您和我编辑并添加了代码括号。.谢谢您Adam,关于代码的来源您是正确的。{$(“#”+feeSID+“_复选框:选中“}当我们在它上面的这一行点击feeSID时,我们得到了正确的值。所以在到达{var pop=$(“#”+feeSID+“_popup”).length;}之前我是否丢失了它你知道有什么方法可以避免它被赋值给一个对象吗?也许可以把它赋值给另一个变量,所以我总是把原始值传递给我的函数来引用。试着从你的脚本中注释那行代码。你仍然得到异常吗?不,如果我注释掉它,我不会得到异常,你是对的,我是对的尝试将obj用作我的选择器的一部分。我解决了此问题。我将为可能存在此问题的任何其他人回答我自己的问题,该问题不是由使用@符号引起的。。