0

次のように、いくつかのテキスト入力を含む from があります。

<input name="option[][<?php echo $cmd1; ?>]" type="text">
<input name="option[][<?php echo $cmd2; ?>]" type="text">
<input name="option[][<?php echo $cmd3; ?>]" type="text">
<input name="option[][<?php echo $cmd4; ?>]" type="text">
[..]

毎回、未定義の量の入力があります。

フォームが送信されたら、「option[]」の値を JavaScript 配列に保存したいと思います (AJAX を使用しているため、配列の状態は削除されません)。

AJAX リクエストでこれを達成しようとしまし$('form').serializeArray()たが、「option[]」データのみにアクセスする方法がわかりません。

どんな提案でも大歓迎です!

4

4 に答える 4

1

すでに回答を受け入れていますが、(適切なタイミングでこのアクションを実行するか、適切なイベントに従っていると仮定して) これは 2 つの比較的簡単な方法で実行できることを指摘しておく価値があります。

jQuery の場合:

var options = $('input[name^="option"]').map(function(){ return this.value; }).get();

または、プレーンな JavaScript (最新のブラウザー) を使用する場合:

var options = [].map.call[document.querySelectorAll('input[name^="option"]'), function(a){
    return this.value;
});
于 2013-11-10T18:27:18.177 に答える
0

次のように、クラスを使用するだけです。

<input class="option" name="option[<?php echo $cmd1; ?>]" type="text">
<input class="option" name="option[<?php echo $cmd2; ?>]" type="text">

var options = [];
$('.option').each(function(){
  options.push($(this).val());
});

nameまたは、属性で直接照合します。

<input name="option[<?php echo $cmd1; ?>]" type="text">
<input name="option[<?php echo $cmd2; ?>]" type="text">

var options = [];
$("input[name*='option']").each(function(){
  options.push($(this).val());
});
于 2013-11-10T11:38:52.763 に答える
0

あなたが好きでHTMLoption[<?php echo $cmd1; ?>]なく、option[][<?php echo $cmd1; ?>]

<input name="option[<?php echo $cmd1; ?>]" type="text">
<input name="option[<?php echo $cmd2; ?>]" type="text">
<input name="option[<?php echo $cmd3; ?>]" type="text">
<input name="option[<?php echo $cmd4; ?>]" type="text">
于 2013-11-10T11:17:35.897 に答える