Javascript:创建循环以从选中的复选框中包含结果

Javascript:创建循环以从选中的复选框中包含结果,javascript,Javascript,我花了一整天的时间来做这件事——而且我也在搜索 我有html格式的复选框。如果他们被选中,我需要立即concat并显示到一个单独的文本区域的值。我的函数currenty工作,但我需要创建一个循环,因为我无法确定复选框的数量,因为它们是动态的 我的职责如下 <script type="text/javascript"> function combGenderSeekingGender() { if (document.

我花了一整天的时间来做这件事——而且我也在搜索

我有html格式的复选框。如果他们被选中,我需要立即concat并显示到一个单独的文本区域的值。我的函数currenty工作,但我需要创建一个循环,因为我无法确定复选框的数量,因为它们是动态的

我的职责如下

<script type="text/javascript">     

            function combGenderSeekingGender() {
                if (document.jomsForm.jsgenderseekinggender1.checked){
                    alert("input1 is checked");
                    var input1 = document.jomsForm.jsgenderseekinggender1.value;
                }else{
                    alert("input1 is NOT checked");
                    var input1 = "";
                }


                if (document.jomsForm.jsgenderseekinggender2.checked){
                    alert("input2 is checked");
                    var input2 = document.jomsForm.jsgenderseekinggender2.value;
                }else{
                    alert("input2 is NOT checked");
                    var input2 = "";
                }

                if (document.jomsForm.jsgenderseekinggender3.checked){
                    alert("input3 is checked");
                    var input3 = document.jomsForm.jsgenderseekinggender3.value;
                }else{
                    alert("input3 is NOT checked");
                    var input3 = "";
                }

                if (document.jomsForm.jsgenderseekinggender4.checked){
                    alert("input4 is checked");
                    var input4 = document.jomsForm.jsgenderseekinggender4.value;
                }else{
                    alert("input4 is NOT checked");
                    var input4 = "";
                }

                var tmpInput =input1 + "-" + input2 + "-" + input3 + "-" + input4;  
                document.jomsForm.jsgenderseekinggender.value = tmpInput.replace(/^[\s-]+|[\s-]+$/g,"");                    
            }

        </script>

函数combGenderSeekingGender(){
if(document.jomsForm.jsgenderseekinggender1.checked){
警报(“检查输入1”);
var input1=document.jomsForm.jsgenderseekinggender1.value;
}否则{
警报(“未检查输入1”);
var输入1=“”;
}
if(document.jomsForm.jsgenderseekinggender2.checked){
警报(“检查输入2”);
var input2=document.jomsForm.jsgenderseekinggender2.value;
}否则{
警报(“未检查输入2”);
var输入2=“”;
}
if(document.jomsForm.jsgenderseekinggender3.checked){
警报(“检查输入3”);
var input3=document.jomsForm.jsgenderseekinggender3.value;
}否则{
警报(“未检查输入3”);
var输入3=“”;
}
if(document.jomsForm.jsgenderseekinggender4.checked){
警报(“检查输入4”);
var input4=document.jomsForm.jsgenderseekinggender4.value;
}否则{
警报(“未检查输入4”);
var输入4=“”;
}
var tmpInput=input1+“-”+input2+“-”+input3+“-”+input4;
document.jomsForm.jsgenderseekinggender.value=tmpInput.replace(/^[\s-]+|[\s-]+$/g,”);
}
此函数在动态创建“我的复选框”的循环中调用,如下所示:

  $html .= '<input type="checkbox" onClick="combGenderSeekingGender()" id="jsgenderseekinggender'.$elementCnt.'" name="jsgenderseekinggender'.$elementCnt.'" value="'.$genderseekinggenderItem.'"/>';
$html.='';
一切正常,但我需要删除硬编码的js功能并创建一个纯循环。我能够将elementCount传递给函数,这将有助于设置限制,但我似乎无法使循环的其余部分正常工作,因为我似乎可以定义动态变量名

我基本上一直在尝试这种变化:

function combGenderSeekingGender(numResults) {
                    var input=[];
                    for (ii=1;ii<=numResults;ii++){
                        if (document.jomsForm.jsgenderseekinggender[ii].checked){
                            alert("input"+ii+" is checked");
                            var input[ii] = document.jomsForm.jsgenderseekinggender[ii].value;
                        }else{
                            alert("input"+ii+" is NOT checked");
                            var input[ii] = "";
                        }

                    }


                    var tmpInput =input1 + "-" + input2 + "-" + input3 + "-" + input4;  
                    document.jomsForm.jsgenderseekinggender.value = tmpInput.replace(/^[\s-]+|[\s-]+$/g,"");                    
                }
函数combGenderSeekingGender(numResults){
var输入=[];
对于(ii=1;ii您应该使用jquery:

var result = "";
$("input:checked" ).each(function(){
    result = result + "-" + $(this).val();
});

这将循环通过所有选定的复选框,并将其值连接到结果。

复选框的值在哪里声明?该值在变量$genderseekinggenderItem中声明,该变量由循环:foreach($genderseekinggenderItem)填充.你可以在输入标签中看到。我会对jqery做一些研究。谢谢你的提示。