2015-06-14 24 views
1

我試圖使用jQuery cookie來設置語言。 我有以下形式:使用自動提交功能設置jQuery cookie

<select id="lang"> 
    <option value="en_US">English</option> 
    <option value="it_IT">Italiano</option> 
    <option value="fr_FR">Français</option> 
</select> 
<input id="btn" type="button" value="submit"> 
<noscript><input id="btn" type="button" value="submit"></noscript> 

中的以下腳本:

// Set cookie 
$(document).ready(function() { 
    $("#btn").on("click", function() { 
     $.cookie('lang_cookie', $("#lang").val(), { expires: 365 }); 
    }); 
}); 

上面的表格工作得很好,但我想刪除的按鈕和自動提交。 我可以更改使用onchange="this.form.submit()"形式:

<select id="lang" onchange="this.form.submit()"> 
    <option value="en_US">English</option> 
    <option value="it_IT">Italian</option> 
</select> 

但對於jQuery的一部分嗎?如何在不使用$("#btn").on("click", function(){})的情況下設置Cookie?

回答

1

您可以直接使用onchange事件沒有提交如下的形式,

<select id="lang" onchange="set()"> 
    <option value="en_US">English</option> 
    <option value="it_IT">Italian</option> 
</select> 

現在你可以寫你的腳本,

function set(){ 
    $.cookie('lang_cookie', $("#lang").val(), { expires: 365 }); 
} 
0

您可以設置cookie,然後提交表單:

// Set cookie then submit 
$(document).ready(function() { 
    $("#btn").on("click", function() { 
     $.cookie('lang_cookie', $("#lang").val(), { expires: 365 }); 
     $("#btn").closest('form').submit(); 
    }); 
}); 

使用jQuery .submit()

1

你的HTML

<select id="lang" onchange="return setC(this);"> 
    <option value="en_US">English</option> 
    <option value="it_IT">Italiano</option> 
    <option value="fr_FR">Français</option> 
</select> 

你的腳本

function setC(elem) 
    { 
    $.cookie(...); 
     elem.form.submit(); 
    } 
0

jQuery submit doc

// Set cookie 
$(document).ready(function() { 
    $("THE ID OF YOUR FORM").submit(function() { 
     $.cookie('lang_cookie', $("#lang").val(), { expires: 365 }); 
    }); 
});