保存菜单选择的位置

时间:2014-06-26 12:12:43

标签: javascript jquery

我想要做的是允许我们的用户保存他们的选择,这样当他们返回我们的网站时,该项目就已经被选中了。下面是Menu项的一部分,它已经调用了一个java函数来记录它们的选择值。

 <select name="stucountry" class="wide2"  id="scntry" onchange="cntryCode()">
            <option value="" text-align:center>SELECT</option>
            <option value="4">AFGHANISTAN</option>
            <option value="4">ALGERIA</option>
            <option value="3">AZERBAIJAN</option>
            <option value="3">ALBANIA</option>
            <option value="3">ARMENIA</option>
            <option value="1">ANDORRA</option>
            <option value="3">ANGOLA</option>
            <option value="1">ARGENTINA</option>
    </select>

例如:如果用户选择ALBANIA,在他们第一次访问期间他们希望它是他们的默认选择,我想为他们提供这样做的能力。实际选择列表中的项目数超过200个。

我可以使用下面的方法捕获选择的文本,但是我没有成功使用它来将选择对象位置设置为首选项。

function getCntgrySelect()
{
    var ctrySelected = "";
    var ctrySelected = $('#scntry').find('option:selected').text();
    return ctryCode;
    alert(ctrySelected);    
}

提前致谢。

3 个答案:

答案 0 :(得分:0)

为什么使用文本只是使用值来保存在服务器上。

$("#scntry").val();保存到服务器

然后用户$("#scntry").val(serverreply);设置回来,这样可以帮助您按ID而非按值保存,并且会更快。

否则您必须使用以下适用于您的jquery版本的其中一个

function setCntgrySelect()
{

    var ctrySelected = $('#scntry').find('option[text="SERVERREPLY"]').val();
    $('#scntry').val(ctrySelected )

}

OR

 function setCntgrySelect()
    {

        var ctrySelected = $('#scntry option').filter(function () { return $(this).html() == "SERVERREPLY"; }).val();
        $('#scntry').val(ctrySelected )

    }

答案 1 :(得分:0)

如果要存储用户的最后一个选择,可以将其存储在cookie中。通过这种方式,它将存储在客户端,而不必担心处理这些值是服务器端。

您可以将jquery-cookie用于此目的。

您只需使用名称(例如“lastSelection”)存储当前选定的值,然后检查是否存在名称为lastSelection的cookie。如果存在此cookie,则只需获取此cookie的值,然后从选择列表中选择相应的选项。

答案 2 :(得分:0)

这听起来应该看看localStorage API(参见API-Ref)。如果我没记错,它可以通过IE8。使用原型,您可以实现向后兼容性。基本上你会像这样处理你的页面加载:

var preselect = localStorage.getItem("valueKeyForSelector");
selectCheckboxValue(preselect);

修改更改的方法以更新本地存储。这样,选择将通过无效页面访问来保持。

我希望你能找到的是什么。