7

「クイズジェネレーター」を作成しようとして困っています。

クイズの回答の選択肢を記入できるフォームがありますが、ここでは、新しい ID を持つ新しいフィールドを動的に作成することもできます。

そのため、id txtAnswer1、txtAnswer2 などで新しい入力を作成します。

値を取得するための(機能しない)コードは次のとおりです。

    $("#AddNewQuiz").click(function () {
    var NewQuizAlts = $("#txtAnswer").val();
    var NewQuizQuestion = $("#NewQuizQuestion").val();
    var init = { 
        'questions': [ 
        {
       'question': NewQuizQuestion,
       'answersAlts': [NewQuizAlts,'Two','Three','Four'],
          'correctAnswer': 1
          } 
          ]
    }   

ここでは、静的な最初の値のみを取得していることがわかります。しかし、「ループ」などで作成されたすべての値を取得したいと思います。

誰にもアイデアはありますか?

ありがとう!


答えてくれてありがとう!

しかし、私はそれをうまく機能させることができません!

私はこれを試しました:

    $('input[id^="txtAnswer"]').each(function(input){
        var value = $('input[id^="txtAnswer"]').val();
        var id = $('input[id^="txtAnswer"]').attr('id');
        alert('id: ' + id + ' value:' + value);
        });

しかし、最後に作成された入力のみのアラート (4 回) しか表示されません。何が間違っている可能性がありますか?

問題は、これが私が達成したいことです:

1.) 上記のコードを使用して、作成されたすべての入力のリストを取得します。

2.) 次のような値を使用して、カンマ区切りのリストに入れます。

    QuestionAlts = [''+Alt1+'',''+Alt2+'',''+Alt3+''];

3.) また、作成された入力の数に応じて、リスト内により多くの代替を生成するようにします。したがって、5 つの代替を作成すると、次のようになります。

    QuestionAlts = [''+Alt1+'',''+Alt2+'',''+Alt3+'',''+Alt4+'',''+Alt5+''];

これらすべてについて助けを求めるのが大変かどうかは理解していますが、何もないよりは少しだけましです:)

ありがとう!

4

3 に答える 3

3

あなたはこれを行うことができます:

$('input').each(function(input){
   var value = $(input).value();
   var id = $(input).attr('id');
   console.log('id: ' + id + ' value:' + value);
});

これを試して:

$('input[id^="txtAnswer"]').each(function(input){
    var value = $(this).val();
    var id = $(this).attr('id');
    alert('id: ' + id + ' value:' + value);
});
于 2013-04-26T22:11:43.630 に答える
1

入力をループするだけの場合は、次のようにしてみてください。

$('input').each(function() { alert(this.val()); });

これは、ページのすべての入力フィールドをループします。

[type=text] を定義するか、正規表現を使用して特定の ID で始まる特定のテキスト フィールドを取得することで、さらにフィルタリングすることができます (たとえば、"txtAnswer" で始まり、その後に数字が続く ID を持つ任意のテキスト フィールドに一致します)。

これを試して:

$('input[id^="txtAnswer"]').each(function(input){
    var value = $(this).val();
    var id = $(this).attr('id');
    alert('id: ' + id + ' value:' + value);
});
于 2013-04-26T22:15:40.347 に答える