0

複数の行にフォーム要素があります。フォーム内のすべての値を読み取り、値を含む JSON を生成できるように、これらの要素に名前を付ける最良の方法は何ですか? HTML は配列をサポートしていないため、最良の代替手段は何ですか?

各行には、2 つのテキスト要素と 1 つの選択要素があります。これらの行は動的に生成されます。

編集:基本的に、サービスに渡すことができるように、データを JSON に変換する簡単な方法が必要です。

私の各行は次のようになります

<tr><td><input type="text"></input></td>
<td><select><option>Exact</option><option>Regex</option><option>Action</option></select></td>
<td><input type="text"></input></td></tr>

<tr><td><input type="text"></input></td>
<td><select><option>Exact</option><option>Regex</option><option>Action</option></select></td>
<td><input type="text"></input></td></tr> .....
4

3 に答える 3

1

私は理解していると思います。HTML を変更するだけです。

<div class="form"> // I prefer getting a namespaced super element
<div class="row">
    <input name="name[0][yo]"/>
    // Other elements
</div>
<div class="row">
    <input name="name[1][yo]"/>
    // other elements
</div>
</div>

次に、JQuery で次のようにします。

$.post('to_my_page', $('.form input, .form select, .form textarea').serialize(), function(data){
    // Done
}, 'json');

これにより、入力行の配列を別のページに投稿できるようになります。

もちろん、これは非常に単純で基本的な例です。

于 2012-10-05T11:50:17.833 に答える
0

値にIDを設定することを実現するための良い方法は、たとえば、JSONを行に対して反復処理してデータを取得する必要がある場合に、テキストをスパンでラップするだけで使用することです。

var elements = []
$('#formId tr').each(function (i, e){
    elements.push({
        ElementTd1: $('#td1').val()    
   })  
}
于 2012-10-05T11:47:21.607 に答える
0

フォームからすべてのデータを抽出するには、次のようにjQuery の serializeArray()メソッドを使用するだけです。

$('form').serializeArray();

jsFiddle の例

于 2012-10-05T11:50:45.207 に答える