0

嗨,我有一个包含以下select列表的页面

<select class="othdebt" id="othdebt" name="othdebt">
    <option value="Cate" >Categorical</option>
    <option value="Cont">Continuous</option>
    <option value="Data">Date</option>
</select>

当我转到其他页面并返回select列表页面时,我希望看到相同的选定选项。

我使用以下 jQuery 来执行此操作。

<script type="text/javascript">
    $(".othdebt").each(function(){
        var $titleId = $(this).attr('id');
        var $cookieValue = $.cookies.get($titleId);
        if ($cookieValue) {
            $(this).val($cookieValue);
        }                       
    });
</script>

但它没有任何其他建议来做到这一点?

4

4 回答 4

0

你得到的id不正确。试试这个:

var titleId = $(this).attr('id');

或者:

var titleId = this.id;

请注意,我还$从变量名的开头删除了 。这个约定是为包含 jQuery 对象的变量保留的——这不是。

于 2012-11-01T10:35:53.957 回答
0

将所有代码保存在 document.ready() 中

编辑:设置 cookie

$(".othdebt").​change(function(){
    $.cookies('titleId',$(this).val());
});​

在加载页面时获取 cookie

document.ready(function(){
$(".othdebt").each(function() {
    //var titleId = $(this).attr('id');
    var $cookieValue = $.cookies.get('titleId');
    if ($cookieValue) {
        $(this).val($cookieValue);
    }
});
});
于 2012-11-01T10:36:06.427 回答
0

首先,使用本机 javascript 函数设置 cookie。

document.cookie = 'othdebt=Data';

然后用这个获取cookie

var objId = $('.othdebt').attr('id');
var cookieValue = document.cookie.match( '(^|;) ?' + objId + '=([^;]*)(;|$)' );
 if ( cookieValue )
    cv = ( unescape ( cookieValue[2] ) );
else
    cv = null;

cv 保存 cookie 值

 $(".othdebt option").each(function(){
  if (cv == $(this).val())
  {
    $('.othdebt').val(cv);
  }
});

我已经对此进行了测试,它对我有用;)

于 2012-11-01T10:50:56.497 回答
0

最后我找到了自己的解决方案

这是 演示

/* Here's the actual code. */

if($.cookie('remember_select') != null) {

    $('.select_class option[value="' + $.cookie('remember_select') + '"]').attr('selected', 'selected');

}

$('.select_class').change(function() {

    $.cookie('remember_select', $('.select_class option:selected').val(), { expires: 90, path: '/'});

});​
于 2012-11-01T11:33:54.087 回答