0

同じ値の2つのドロップダウンリストがあり、値にはデータベース値が入力されています。私が解決しようとしている問題は、フォームが送信されたときに2つのドロップダウンボックスが同じ値を持つことができないことです。POST値は異なっている必要があります。

ユーザーがドロップダウンボックスAからオプションAを選択した場合、ドロップダウンドロップボックスBからオプションAを削除したいと思います。ユーザーがドロップダウンボックスAからオプションBを選択した場合、オプションAをドロップダウンボックスBに戻します。ドロップダウンボックスBから削除される新しい値オプションB。

私はこれを行うためにいくつかの異なる方法を試しましたが、最も近いのは次のコードです。このビットは、ページが読み込まれたときに必要なことを実行します。

$(document).ready(function() {
    $.dropdownAcache = { 
        val : "",
        val1 : "",
    };

    $('#id_A').ready(function() {
        var optionval = $('#id_A').val();
        $.dropdownAcache.val = $('#id_A').val();
        $('#id_B > option[value=' + optionval + ']').remove();
    });

    $('#id_A').click(function() {
        var optionval = $('#id_A').val();
        $.dropdownAcache.val1 = $('#id_A').val();
        $('#id_B > option[value=' + optionval + ']').remove();
        $('#id_B').append$(dropdownAcache.val);
        $.dropdownAcache.val = $.dropdownAcache.val1;
    });

....しかし、ドロップダウンボックスBから値を削除するだけのようですが、値を追加し直すことはありません。ドロップダウンボックスBに値がないため、実際には非常にコミカルですが、真剣に誰でも助けることができます。これを機能させますか?

乾杯-オリ

4

1 に答える 1

1

使用する必要があるイベントは「変更」イベントです。また、2番目のコールバックは必要ありませ.ready()ん。目的はありません(最初のコールバックはそれを.ready()処理します)

$.dropdownAcache = { 
    val : "",
    val1 : ""
};

$(document).ready(function() {

    var optionval = $('#id_A').val();
    $.dropdownAcache.val = $('#id_A').val();
    $('#id_B > option[value="' + optionval + '"]').remove();

    $('#id_A').change(function() {
        optionval = $('#id_A').val();
        $.dropdownAcache.val1 = optionval;
        $('#id_B > option[value="' + optionval + '"]').remove();
        $('#id_B').append( $.dropdownAcache.val );
        $.dropdownAcache.val = $.dropdownAcache.val1;
    });
});

(リストに値が追加されない理由については、残念ながらタイプミスがあります.append$(dropdownAcache.val);

于 2012-09-04T19:47:51.417 に答える