1

だから私は、ユーザーが問題に力の量を入力するフォームがある学校の JS プロジェクトに取り組んでいます。ループに入ると、力ごとに新しいフィールドが作成されます。私はその部分を持っていますが、これらの新しいフィールドのそれぞれからのテキスト入力を保存することに問題があります。ユーザーがボタンをクリックする必要がある .on 関数を使用しています。次に、クリックされたボタンの ID に基づいて、フォース配列の数値が作成されます。その後、入力は配列に読み込まれると想定されますが、機能せず、気が狂います。何か案は?前もって感謝します。

function forceRecording(numofforces){
    for(var i =0; i<numofforces; i++){
        $('#button1').after("<tr><td>Force DFO " + i +":</td><td><form><input type='text' name='lengthMeasure_'/></form></td><td><div class='button' id='lengthButton_"+i+"'>Add!</div></td></tr>")
        $('#button2').after("<tr><td>Force " + i +":</td><td><form><input type='text' name='forceMeasure_'/></form></td><td><div class='button' id='forceButton_"+i+"'>Add!</div></td></tr>")
    }
};  

$("button[id^='forceButton']").on("click",function(){
    var num = parseInt($(this).attr("id").split("_")[1]);
    forces[num] = $('input[id=forceMeasure_'+num+']').val();
    $('#button1').after('<td>'+forces[num]+'</td>');
});

ご覧のとおり、力が実際に配列を指しているかどうかを確認するために一時的にテーブルに別の列を追加していますが、これを実行しても新しいものは何も表示されません。

4

1 に答える 1

1

私はあなたが今までにこの問題を解決したと確信しています. しかし、たまたまこの投稿に出くわし、答えが将来の読者に役立つと思いました.

コードには、動作を妨げる 3 つの問題がありました。それらは次のとおりです。

  1. $("button[id^='forceButton']")の代わりに使用されます$(".button[id^='forceButton']").前に注意してくださいbutton.jQuery がないと、 likeを含むbuttonタグが検索されますが、問題のタグはas が含まれます。idforceButtondivclassbutton
  2. $('input[id=forceMeasure_'+num+']').val();はテキスト ボックスの値を取得するために使用されますが、inputフィールドにはid. しかないnameので、代わりに を使用して$('input[name=forceMeasure_' + num + ']').val();ください。
  3. inputフィールドは として設定されます<input type='text' name='forceMeasure_'/>。の後の count 部分forceMeasure_が欠落していることに注意してください。だったはず<input type='text' name='forceMeasure_" + i + "'/>です。

上記の 3 つの変更をすべて行うと、コードは正常に動作します。

作業コードのサンプル デモについては、ここをクリックしてください。

于 2013-10-21T08:49:13.110 に答える