gpt4 book ai didi

javascript - 页面刷新后 jQuery cookies 设置选择下拉值

转载 作者:行者123 更新时间:2023-11-29 10:54:43 24 4
gpt4 key购买 nike

老实说,今天走到这一步后,我的脑子有点炸了。

我正在尝试使用此插件保存页面上多个选择下拉菜单的状态:

http://plugins.jquery.com/project/cookies

我正在使用这个 jQuery 来根据它们的 ID 为不同的标题下拉菜单设置 cookie:

$(document).ready(function() {

// hide 'Other' inputs to start
$('.jOther').hide();

// event listener on all select drop downs with class of jTitle
$(".jTitle").change(function(){

//set the select value
var val = $(this).val();

if(val != "Other") {
//$(this).nextAll('.jOther').hide();
$(this).parent().find(".jOther").hide();
} else {
//$(this).nextAll('.jOther').show();
$(this).parent().find(".jOther").show();
}

// Sets a cookie with named after the title field's ID attribute
$(this).cookify();

});

$(".jTitle").each(function(){

// get the id of each Title select drop down
var $titleId = $(this).attr('id');

// get the value of the cookie for each cookie created above in $(this).cookify()
var $cookieValue = $.cookies.get($titleId);

// if value is 'Other' make sure it is shown on page refresh
if ($cookieValue == 'Other') {

// Show the other input
$(this).parent().find(".jOther").show();

// set select value to 'Other'
$(this).val('Other');

} else {

// set to whatever is in the cookie
$(this).val($cookieValue);

}

});

});

发生的事情是,当没有设置 cookie 时,当我希望它默认为“请选择”时,选择下拉菜单显示一个空白选项。

我正在使用的示例 HTML:

<td>
<select id="titleDepend1" class="inlineSpace jTitle">
<option value="Please select">Please select...</option>
<option value="Mr">Mr</option>
<option value="Mrs">Mrs</option>
<option value="Ms">Ms</option>
<option value="Miss">Miss</option>
<option value="Dr">Dr</option>
<option value="Other">Other</option>
</select>
<label for="otherDepend1" class="inlineSpace jOther">Other</label>
<input type="text" class="text jOther" name="otherDepend1" id="otherDepend1" maxlength="6" />

因此,如果这是用户第一次访问页面并且他们没有单击任何下拉菜单,则第一个值将为空而不是“请选择”。

最佳答案

我会更改这部分,如果 cookie 不存在,请不要弄乱下拉列表:

$(".jTitle").each(function(){
var $titleId = $(this).attr('id');
var $cookieValue = $.cookies.get($titleId);
if ($cookieValue == 'Other') {
$(this).parent().find(".jOther").show();
$(this).val('Other');
} else if($cookieValue) {
$(this).val($cookieValue);
}
});

唯一的变化是在末尾添加一个 if 检查,看看是否有 cookie...如果没有,下拉列表中的默认位置 0(浏览器默认)将被保留。

关于javascript - 页面刷新后 jQuery cookies 设置选择下拉值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2358689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com