Javascript 检查是否在动态表单中选中复选框不起作用

Javascript 检查是否在动态表单中选中复选框不起作用,javascript,jquery,Javascript,Jquery,我正在开发一个网页,可以动态地添加复选框。在提交表单时,我检查了表单是否正确构建,以及php文件是否正确处理了表单。提交表单时,我的验证功能将检查是否选中了某些复选框,并且此部分不起作用。使用“is(“:checked”)”总是返回false,选中复选框时也是如此。我强烈怀疑原因是当我在表单提交代码(见下文)中查看控制台的输出时,错误地定义了选择器($(“#批准的_协议['+I+'])):输出显示奇怪(对我而言)相同的ID(批准的_协议%5B%5D)但是,它们作为正确的元素数组传递给$\u PO

我正在开发一个网页,可以动态地添加复选框。在提交表单时,我检查了表单是否正确构建,以及php文件是否正确处理了表单。提交表单时,我的验证功能将检查是否选中了某些复选框,并且此部分不起作用。使用
“is(“:checked”)”
总是返回false,选中复选框时也是如此。我强烈怀疑原因是当我在表单提交代码(见下文)中查看控制台的输出时,错误地定义了选择器(
$(“#批准的_协议['+I+'])
):输出显示奇怪(对我而言)相同的ID(批准的_协议%5B%5D)但是,它们作为正确的元素数组传递给
$\u POST

如何解决这个问题?如果可能,我希望保留复选框id定义(因此我不需要重写php代码)

//相关表单构建代码
形式+='';
//用于将表单附加到包装器的代码
//相关验证代码

对于(var i=0;i什么是
msg.nrofagreements
?它只是一个定义了int值>0Ok的变量,但是表单构建代码没有显示您如何更改id。您有:
id=“approved\u agreement[]”
但这将产生相同的ID。代码中存在语法错误,例如未正确关闭函数等。此外,似乎没有任何东西阻止表单提交,因此假设表单已提交且页面已重新加载,您真正想做的是什么?@j08691:thnx。那么,处理该表单的php文件怎么可能提交的表单收到一个包含各种(不相同)元素的数组。如何更改代码?
//related form building code
form += '<td> <input type="checkbox" id="approved_agreement[]" name="approved_agreement[]" value="'+ msg[i].name +'"> </td></tr>';
//code for appending form to wrapper

//related validation code
for(var i=0;i<msg.nrofagreements;i++){
        console.log('VALIDATE FORM agreement id: '+'#approved_agreement['+ i +']'); 
        console.log('VALIDATE FORM agreement len: '+ $("#approved_agreement["+ i +"]").length); //show value 0 indicating the element does not exist
        console.log('VALIDATE FORM agreement checked: '+$("#approved_agreement["+ i +"]").is(":checked")); //always shows value false 
         //approved_agreement[]
        if($('#approved_agreement['+ i +']').is(':checked')){
           //some validation code here...
        }//if
}//for

//related code within form submit function
$("#FormAgreementsConfirm").submit(function(event){
    var dataAjax = $( this ).serialize(); //does not work, but when copying the string from the console in line below it odes work.
    console.log('SUBMITTED FORM: '+ dataAjax  ); //shows (when checking the checboxes): approved_agreement%5B%5D=SolarX_10&approved_agreement%5B%5D=SolarX_11
}