1

次のコードを使用して、ページの更新時にドロップダウンメニューの選択を保持しました。

$("#form_Selection > option").each(function() {
    if (this.value == 'variable') { 
        this.selected=true; 
    }
});

更新後にチェックボックスの状態を保持する同様のコードを構成するのに苦労しています。何か案は?

4

3 に答える 3

1

次はどのように機能しますか(チェックボックスを設定するだけで、コードのロジック部分を再印刷していません $(this).attr('checked', true);

于 2012-12-17T16:30:58.517 に答える
1

何かのようなもの

   {if (this.value == 'variable') {this.checked="checked";}}
于 2012-12-17T16:32:19.193 に答える
0

:checkboxprop('checked')を使用してすべてのチェックボックスの状態を保存するには、sessionStorage:を使用できます。

$(':checkbox').each(function(index,element){
    //save the 'checked' property of every checkbox
    if ( $(this).prop('checked') ) {
        sessionStorage['checked-checkboxes']=sessionStorage['checked-checkboxes'] + ',';
    }
}

そして、ページがロードされたとき:

var checkedCheckboxes = sessionStorage['checked-checkboxes'];
//if there's anything saved in the sessionStorage for checked checkboxes
if ( checkedCheckboxes ) {
    var checkedCheckboxesNames = checkedCheckboxes.split(',');
    for( var i=0; i < checkedCheckboxesNames; i++ ) {
        $( '#' + checkedCheckboxesNames[i] ).prop( 'checked', true );
    }
}

考え方は単純です。保存するときは、保存するすべてのチェックボックスのIDを保存し、ロードするときは、それらすべてのIDを取得して、チェックボックスを設定します。

もちろん、永続的なストレージが必要な場合sessionStorageは、に置き換えることができます。localStorageその点に注意してください:

  • このアルゴリズムで識別するには、すべてのチェックボックスにIDが必要です。
  • 同じキーを使用する他の変数がストレージに存在してはなりません(プレフィックスを使用して副作用を排除できます)。

お役に立てば幸いです:)

于 2012-12-17T16:46:54.573 に答える