0

ページがロードされたときに、特定のクラスを持つすべての html フィールドに Cookie 値を直接ロードしたいと考えています。フィールドの ID と同じ名前で作成された Cookie があります。

これを行うとうまくいきません。

$(".class").val(function(){
    el=$(this);
    id=el.attr("id");
    cookie_val=$.cookie(id);
    el.val(cookie_val);
});

何か案が?

4

2 に答える 2

0

関数をjQueryの.val()メソッドに渡す場合、目的の値が関数によって返される必要があります。

コードが立っているとき、値を設定する関数が実行されています。次に、を返しますがundefined、これにより空に設定されます。

これは機能するはずです:

$('.class').val(function () {
    return $.cookie($(this).attr('id'));
});

.each()または、次を返すことなく、関数に値の設定を行わせるために使用することもできます。

$('.class').each(function () {
    var el = $(this);
    el.val($.cookie(el.attr('id')));
});

FWIW、私はこの機能のためのjQueryプラグインを提供するCookieライブラリを作成しました(同じ名前のCookieが保持する値をフィールドに入力します)。

于 2013-01-31T18:19:24.937 に答える
0

ここで、パラメータ/cookienameと戻り値を送信できる関数

function findnameGetvalue(n){
    a = document.cookie;
    while(a != ''){
        cookiename = a.substring(0,a.search('='));
        cookievalue = a.substring(a.search('=')+1,a.search(';'));
        if(cookievalue == cookiename+'='){
            cookievalue = a.substring(a.search('=')+1,a.length);
        }
        if(cookiename == n){ // if found return value
            return cookievalue;
        }
        i = a.search(';');
        if(i == -1){ // not found do stuff
            i = a.length
        }
        else{
            i += 2;
        }
        a = a.substring(i,a.length);
    }
}
于 2013-01-31T18:19:36.163 に答える