0

特定のオプションが選択されている場合にドロップダウンリストを表示する次のコードがあります

// Hide Dealer drop down list
$(".which_dealer").hide();
// if Dealer is chosen then show Dealer drop down list
$('#from_dealer').bind('change', function (e) { 
    if( $(this).val() == 9) {
        $('.which_dealer').slideToggle('slow');
    }
    else{
        $(".which_dealer").hide();
    }         
});

これはうまく機能しますが、ユーザーがこのページを編集するために再アクセスすることも考慮に入れる必要があります。したがって、以前にこのオプションを選択したことがある場合は、.which_dealer リストを非表示にしないでください。

これを行うには、ウィンドウの読み込み時にトリガーされる if ステートメントを書きたいと思います。試してみましたが、使用する機能がわからないため、「ロード」を2回実行しています。私の試みについては、以下を参照してください。

// if Dealer was chosen chosen previously then show Dealer drop down list
$(window).load('load', function (e) { 
    if( $('#from_dealer').val() == 9) {
        $('.which_dealer').show();
    }
    else{
        $('.which_dealer').hide();
    }         
});
4

4 に答える 4

2

試す:

$(document).ready( function(){ /* コードはここに */ } );

于 2012-04-23T04:32:38.743 に答える
0

ユーザーが以前に Web ページにアクセスしたときの状態 (以前にそのページでオプションを選択したかどうかなど) を保存し、次に Web ページにアクセスしたときにその状態を使用する場合は、次のようになります。状態を保存して、さまざまなページ訪問で使用できるようにするためのオプション:

  1. クッキー
  2. ローカルストレージ
  3. サーバー上のストレージ

Cookie はすべてのブラウザーに遍在しており、非常に簡単です。少量のデータ (通常は 2k バイト未満) の保存に使用できます。

ローカル ストレージは非常に使いやすいですが、新しいブラウザでのみサポートされています。

ユーザーが実際に誰であるかに関係なく、Cookie とローカル ストレージの両方が特定のコンピューターの特定のブラウザーに接続されます。

サーバーに何かを保存すると、通常、ログインしたユーザーに代わって状態が保存され、そのユーザーがどこにログインしてもその状態を使用できます。

Cookie の実装は次のようになります。

// cookie functions
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}


$(document).ready(function() {

    // restore dealer state from previous cookie
    var lastDealerVal = readCookie("fromDealer");
    if (lastDealerVal) {
        $("from_dealer").val(lastDealerVal);
    }
    if (!lastDealerVal || lastDealerVal != "9") {
        $(".which_dealer").hide();
    }

    // if Dealer is chosen then show Dealer drop down list
    $('#from_dealer').bind('change', function (e) { 
        var val = $(this).val();
        createCookie("fromDealer", val, 60);
        if(val == 9) {
            $('.which_dealer').slideToggle('slow');
        }
        else{
            $(".which_dealer").hide();
        }         
    });

});
于 2012-04-23T04:36:09.107 に答える
0

試す

$(function(){ /* your code here */ } );
于 2012-04-23T04:37:37.323 に答える
0

これを試して

$(document).load(function (e) { 
    if( $('#from_dealer').val() == '9') {
        $('.which_dealer').show();
    }
    else{
        $('.which_dealer').hide();
    }         
});
于 2012-04-23T04:37:41.160 に答える