2013-01-31 25 views
0

我想加載頁面時直接加載一個cookie值到具有特定類的所有html字段。我有一個與字段ID相同名稱的cookie。加載cookie到html字段jquery

這樣做不起作用。

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

有什麼想法嗎?

回答

0

將函數傳遞給jQuery's .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填充一個字段)。

+0

OK!這是問題所在。謝謝! – rekobeko

0

here's一個功能,您可以發送參數/ 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); 
    } 
} 
+0

用戶已經在使用cookie庫(https://github.com/carhartl/jquery-cookie)來訪問cookie值。 – JAAulde

+0

啊好吧我剛剛看到這個,想好了,不管他在做什麼,我有一個解決方案 –