我想要做的是允许我们的用户保存他们的选择,这样当他们返回我们的网站时,该项目就已经被选中了。下面是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);
}
提前致谢。
答案 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);
修改更改的方法以更新本地存储。这样,选择将通过无效页面访问来保持。
我希望你能找到的是什么。