0

私は一日中これをしようとしました-そして検索もしました。

HTMLフォームにチェックボックスがあります。それらがチェックされている場合は、すぐに値を連結して別のテキスト領域に表示する必要があります。私の機能は現在機能していますが、チェックボックスが動的であるため、チェックボックスの数を特定できないため、ループを作成する必要があります。

私の機能は次のとおりです。

<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>

この関数は、チェックボックスを動的に作成するループで呼び出されます。

  $html .= '<input type="checkbox" onClick="combGenderSeekingGender()" id="jsgenderseekinggender'.$elementCnt.'" name="jsgenderseekinggender'.$elementCnt.'" value="'.$genderseekinggenderItem.'"/>';

すべて正常に動作しますが、ハードコーディングされた 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,"");                    
                }

もちろん、これは何よりも疑似コードです。なぜなら、それをコーディングする正しい方法ではないことを私は知っているからです。正しい構文を取得するためのアドバイスは大歓迎です..

4

1 に答える 1