动态添加新值到cookie
Add new value to cookie dynamically
我试图添加新的值到一个cookie,这取决于你在一个下拉菜单中选择了哪个选项。当您选择一个选项时,该选项的值应该被插入到cookie中。当您选择其他选项时,应将该选项的新值添加到cookie中,并替换旧值。
我试过了:
var value;
var id;
var service_info;
var service;
var connection; //Namnet på de tjänster som finns, nao_lan, stadsnat, tele osv English: The values of the options
$.cookie("cookie_connection", connection); //Creates cookie
$('.type_of_connection').change(function(e) { //Visa vald tjänst och dess tillhörande div. Varje tjänst har en egen div.
var show_connection = 1;
connection = $(this).val(); //Innehåller VILKEN tjänst man har valt ENGLIS: The option you choosed
$.cookie("cookie_connection", connection);
var divbox = null; //Innehåller id:et på den div som skall visas.
if(connection == "nao_lan") {
divbox = "services_naolan";
} else if(connection == "stadsnat") {
divbox = "services_stadsnat";
} else if(connection == "vadsl") {
divbox = "services_vadsl";
} else if(connection == "tele") {
divbox = "services_tele";
} else {
divbox = null;
}
$.ajax({
type: 'GET',
url: 'summary.php',
data: {connection: connection, show_connection: show_connection},
dataType: "html",
success: function(data) { $("#table_right #" + divbox).html(data).show(); },
error: function(xhr, ajaxOptions, thrownError) { alert(thrownError); }
});
});
$('#'+$.cookie('cookie_connection')+' :input').blur(function(e) {
alert($.cookie('cookie_connection'));
if(!$(e.currentTarget).val() == "") {
service_info = $(e.currentTarget).val(); //Innehåller värdet i input-fälten
id = $(e.currentTarget).attr('id');
service = $.cookie('cookie_connection');
$.ajax({
type: 'GET',
url: 'summary.php',
data: {service_info: service_info, id: id, service: service},
dataType: "html",
success: function(data) { $('#table_right #services_'+$.cookie('cookie_connection')).html(data); },
error: function(xhr, ajaxOptions, thrownError) { alert(thrownError); }
});
}
});
正如你所看到的,我试图在第一个函数中向cookie添加一个新值。我将在下面的函数中使用这个cookie值来生成属于该cookie值的div。有人能帮我吗?
我认为你必须在change事件中绑定blur事件,否则它永远不会工作-也就是说,你必须取消绑定旧的blur事件,并创建一个新的,因为你的连接发生了变化。我想下面的代码可能会有帮助:
function bindConnection( prevConnId, currConnId ) {
if( prevConnId ) {
$('#'+prevConnId+' :input').off( "blur ");
}
$('#'+currConnId+' :input').on( "blur", function(e) {
alert( currConnId );
if(!$(e.currentTarget).val() == "") {
service_info = $(e.currentTarget).val(); //Innehåller värdet i input-fälten
id = $(e.currentTarget).attr('id');
service = currConnId;
$.ajax({
type: 'GET',
url: 'summary.php',
data: {service_info: service_info, id: id, service: service},
dataType: "html",
success: function(data) { $('#table_right #services_'+currConnId).html(data); },
error: function(xhr, ajaxOptions, thrownError) { alert(thrownError); }
});
}
});
}
$('.type_of_connection').change(function(e) { //Visa vald tjänst och dess tillhörande div. Varje tjänst har en egen div.
var show_connection = 1;
connection = $(this).val(); //Innehåller VILKEN tjänst man har valt ENGLIS: The option you choosed
bindConnection( $.cookie("cookie_connection"), connection ); //unbind event for previous connection, and bind new one
$.cookie("cookie_connection", connection);
var divbox = null; //Innehåller id:et på den div som skall visas.
if(connection == "nao_lan") {
divbox = "services_naolan";
} else if(connection == "stadsnat") {
divbox = "services_stadsnat";
} else if(connection == "vadsl") {
divbox = "services_vadsl";
} else if(connection == "tele") {
divbox = "services_tele";
} else {
divbox = null;
}
$.ajax({
type: 'GET',
url: 'summary.php',
data: {connection: connection, show_connection: show_connection},
dataType: "html",
success: function(data) { $("#table_right #" + divbox).html(data).show(); },
error: function(xhr, ajaxOptions, thrownError) { alert(thrownError); }
});
});
bindConnection( null, $.cookie('cookie_connection') ); //bind the first connection
我一直使用这两个函数来设置和获取cookie:
function setCookie(c_name,value,exdays,c_domain) {
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value + "; path=/; domain=."+c_domain;
}
function getCookie(c_name) {
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1) {
c_start = c_value.indexOf(c_name + "=");
}
if (c_start == -1) {
c_value = "";
} else {
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1) {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}
的例子:
setCookie("coolcookie","SOME VALUE",7,"stackoverflow.com");
var mycookie = getCookie("coolcookie");
相关文章:
- $$hashKey在Angular中push()新对象时未生成新值
- text()将保留旧值,但在DOM上显示新值
- Knockout Force在设置新值时通知订阅者可观察到的值
- Javascript / JQuery循环访问已发布的ajax数据字符串以为其分配新值
- 为nouislider设置新值已达到最大数量
- object.create 不使用我的新值
- 在更改选择元素后,在 Javascript 上使用旧值和新值
- 表单不接受新值
- 使用jQuery为属性设置新值
- 如何从javascript散点图中的另一个变量为x和y添加新值
- 根据另一个字段选择获取新值后更新下拉列表内容
- 可以't为我的自动完成框指定新值
- 使用新值更新时出现数组问题
- ajax重新渲染时获得新值
- onClick()从传递给Django模板的函数中获取一个新值
- Grunt为任务设置选项,并使用新值运行该任务
- 比较两个数组,并通过使用 javascript 保留现有对象来更新新值
- 如何使用 Angular.js/javascript 将 JSON 数组值替换为新值
- 如何使用JavaScript/jQuery添加/推送新值到存储在cookie中的数组
- 动态添加新值到cookie