使用 auto-submit 设置 jQuery cookie

Set jQuery cookie with auto-submit

本文关键字:cookie jQuery 设置 auto-submit 使用      更新时间:2023-09-26

我正在尝试使用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 ?

您可以直接使用 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 });
}

Your 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();
    }

您可以设置 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()。

jQuery submit doc

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