0
<tr>
        <td><font face="Arial">Answers</font></td>
        <td>
        <div id="answers" >
            <input type="text" name="T2" size="20" id="answer" class="selector">
        </div>
        <input type="button" value="+" name="B3" id="btnAnswer" onclick="addAnswers()">
        (click on this button will create another field so you can type content
        for the other answer, this can be done using jquery)<br>

        <input type="checkbox" name="c" value="1">Allow this answer to be free text

        </td>
    </tr>      

関数 addAnswers(){

$('#answers').append('<p class="\selector\">' + $('#answer').val() + '</p>'); } 

今、私はこれらの回答の値を取得してサーバーに送信したいと考えています..回答の数は1からnになる可能性があります...

4

3 に答える 3

0

クエリを使用して、tdの子である最初の入力を取得し、そのデータをクリアします。次に、ユーザー$ .appendを使用して、マークアップの任意の場所に追加できます。

また、入力名(名前はt1、t2、t3など)ごとに数値の増分を作成して、サーバー側で効率的に解析できるようにする必要があります。

リビジョン

少し変更されたHTMLマークアップは次のとおりです。

<table>
<tr>
        <td><font face="Arial">Answers</font></td>
        <td>
        <div id="answers" >
            <input type="text" name="T1" size="20" class="answer selector">
        </div>
        <input type="button" value="+" name="B3" id="btnAnswer">
        (click on this button will create another field so you can type content
        for the other answer, this can be done using jquery)<br>
        </td>
    </tr>  
</table>

javascriptを使用すると:

$('#btnAnswer').click(function(){
    var new_input = $('input.answer:first').clone();     
    new_input.attr('name', new_input.attr('name').substr(0, new_input.attr('name').length-1) + ($('#answers').children('input').length + 1));
    $('#answers').append(new_input);
});

javascriptは最初の入力を複製し、その名前をインクリメントします。

サーバー側では、投稿された変数をインクリメントし、それらが設定されているかどうかを個別に確認する必要があります。それらが設定されていない場合は、ループから抜けます。

ここにjsfiddle 。

于 2012-08-15T19:31:55.643 に答える
0

上記のコードに基づいて、これを確認してください。

html

<tr>
<td><font face="Arial">Answers</font></td>
<td><input name="T2" size="20" type="text" id="answer">
<input value="+" name="B3" type="button" id="btnAnswer">
(click on this button will create another field so you can type content
for the other answer, this can be done using jquery)<br>
<input name="c" value="1" type="checkbox">Allow this answer to be free text

jQuery

  $(function(){
    $('#btnAnswer').on('click', function(){
      $('#answers').append('<p>' + $('#answer').val() + '</p>');
    });
  });

jsFiddleはここにあります。確認してください。

- 編集 -

「汚い」仕事をしていることonclickを考えると、もう必要ありません。jQuery

于 2012-08-15T19:33:07.910 に答える
0

jqueryを使用して別の回答を追加する必要があります...誰か助けてくれますか?

チェックアウト:document.createElementプレーンな JavaScript で: https://developer.mozilla.org/en-US/docs/DOM/document.createElement

そして$(target).append(element)http://api.jquery.com/append/

于 2012-08-15T19:28:02.883 に答える