0

selectedselect要素からすべての値をフェッチしています。この要素には、このjqueryコードを使用した属性はありません。

$('#purchaseEditUpdateItemBtn').on('click', function(){
    var selected = [];
    $('#box2View option').each(function(index, element){ 
        selected[index] = $(element).val(); 
    });
    return false;
});

これが私の選択ボックスです。

 <select id="box2View" multiple="multiple" class="multiple">
     <option value="1">ITEM001</option>
     <option value="2">ITEM002</option>
     <option value="3">ITEM003</option>
     <option value="4">ITEM004</option>
 </select>

これにより、名前が付けられたjavascript配列が作成さselectedれ、値が配列として保持されます。オプションからすべての値をフェッチし、このようにクエリをエミュレートします。

estimate_id[]=1&estimate_id[]=2&estimate_id[]=3&estimate_id[]=4

サーバー側で配列として受信されるようにします。

PS:ユーザーが何も選択せずにselect要素からすべての要素をフェッチしたいので、理由により、selected属性は使用されないことに注意してください。serialize()要素を選択する必要があるため、機能しなかったものを使用してみserialize()ましたが、私の場合は当てはまりません。

ありがとうございました

4

2 に答える 2

2

あなたはこのようなことを試すことができます:

$('#purchaseEditUpdateItemBtn').click(function(){
    var selected = [];
    $('#box2View option').each(function(index, element){ 
        selected[index] = 'estimate_id[]=' + $(element).val(); 
    });
    alert(selected.join('&')); 
    return false;
});​

これが最もエレガントな方法かどうかはわかりません。関数を介した単純な文字列連結を使用しArray.joinます。

于 2012-07-23T09:46:56.727 に答える
0

上記の問題については、私は完全なビンを実行しました。したがって、http://codebins.com/bin/4ldqp9xでデモを確認してください

HTML:

<select id="box2View" name="box2View" multiple="multiple" class="multiple">
  <option value="1">
    ITEM001
  </option>
  <option value="2">
    ITEM002
  </option>
  <option value="3">
    ITEM003
  </option>
  <option value="4">
    ITEM004
  </option>
  <option value="5">
    ITEM005
  </option>
  <option value="6">
    ITEM006
  </option>
  <option value="7">
    ITEM007
  </option>
</select>
<p>
  <input type="button" id="purchaseEditUpdateItemBtn" name="purchaseEditUpdateItemBtn" value="Show Items" />
</p>

JQuery:

$(function() {
    $('#purchaseEditUpdateItemBtn').on('click', function() {
        var selected = new Array();
        var i = 0;
        $('#box2View option').each(function(index, element) {
            if ($(this).is(":selected")) {
                selected[i] = "box2View[]=" + $(element).val();
                i++;
            }
        });
        if (selected.length > 0) {
            alert(selected.join('&'));
        }
        return false;
    });
});
于 2012-07-23T12:37:36.307 に答える