3

私のページでは、$.post 関数によって読み込まれたオプション値を選択する必要があります。ある選択から別の選択にデータを「移動」するボタンがあります。この例は新しいページでは機能しますが、私のページでは機能しません。選択された要素は、クリック後に他の選択に移動しません。

問題は、それを行う別の方法があるか、またはページを機能させるためにどのように修正できるかということです。

コード例:

<div style="float:left; border:1px solid red;">
    <div style="background-color:red; color:white;" align="center">INFORMATIVE</div>
    <div id="prop_info" style="float:left;">
        <div style="border:1px solid red;">PROPOSTI</div>
        <div style="float:left"><select multiple id="sel_info_pro" name="sel_info_pro" class="sel"><option value="b">a</option><option>b</option></select></div>
        <div style="float:left;"><a href="#" id="add_info"> >> </a><br><a href="#" id="remove_info"> << </a></div>
    </div>  
    <div id="conf_info" style="float:left;">
        <div style="border:1px solid red;">CONFIGURATI</div>
        <select multiple id="sel_info_conf" name="sel_info_conf" class="sel"></select>
    </div>
</div>
$(document).ready(function(){
    $('#add_info').click(function() {
        return !$('#sel_info_pro option:selected').remove().appendTo('#sel_info_conf');
    });
    $('#remove_info').click(function() {
        return !$('#sel_info_conf option:selected').remove().appendTo('#sel_info_pro');
    });
});
4

2 に答える 2

1

役立つかもしれない少しのガイダンス。次の場合:

alert($('#sel_info_pro option:selected').length);

次に、選択した数に関係なく、0を取得します

選択したオプションは、実際val()にはjQueryオブジェクトに保存されます。

alert($('#sel_info_pro option').val().length); //gives you the count of options selected
alert($('#sel_info_pro option').val()[0]); //gives you the value of the first option selected

したがって、上記のアプローチは機能しません。配列を反復処理し、リスト内の各項目と比較して移動する必要がある場合があります。

このリンクも役立つ場合があります:http://marcgrabanski.com/articles/jquery-select-list-values

于 2010-08-16T09:30:49.187 に答える
0

私は私の実用的な解決策を見つけました:

$(document).ready(function(){
$('#add_info').click(function() {
    var foop = []; 
    $('#sel_info_pro option:selected').each(function(z, selected){ 
        foop[z] = $(selected).val(); 
        return !$('#sel_info_pro option:selected').val(foop[z]).remove().appendTo('#sel_info_conf'); 
    });
}); 
$('#remove_info').click(function() { 
    var foo = []; 
    $('#sel_info_conf option:selected').each(function(i, selected){ 
        foo[i] = $(selected).val(); 
        return !$('#sel_info_conf option:selected').val(foo[i]).remove().appendTo('#sel_info_pro'); 
    });
});

});

みんな助けてくれてありがとう!

于 2010-08-16T13:04:47.753 に答える