当前位置: 首页 > 编程日记 > 正文

浏览器前进后退对下拉框数据的丢失(省市联动实现和例子)

浏览器前进后退对下拉框数据的丢失的问题,典型的为省市下拉框联动时城市数据的丢失。省市联动一般的实现为城市在省份的选择后js加载。

那么每次城市的改变只需要重新加载新的城市数据并更新下拉框即可:

下拉函数

function ReloadCities() {
    var $ddlCity = $("#CityId");
    var selec = $("#ProvinceId").val();
    if (selec) {
        $ddlCity.find("option").remove();
        var url = "@(Url.Action("CityListByProvinceId", "Common", new { area = "Default" }))";
        $.post(url, { 'id': selec }, function (data) {
            $.each(data, function (i, item) {
                $("<option></option>").val(item.AddressId).text(item.AddressName).appendTo($ddlCity);
            });
        }, "json");
    }
    else {
        $ddlCity.find("option").remove();
        $("<option></option>").val("").text("--请选择--").appendTo($ddlCity);
    }
}

正常使用没有问题,但是当用户跳转到其它页面再回退时选中丢失。关于回退普及下面几个关键的知识点:

  1. 一般都会自动使用缓存的数据,除非禁用缓存才会重新从服务端获取数据。
  2. 大部分浏览器在默认设置下都会保存每个元素的value,也就是用户输入的数据。
  3. 具体的知识可以查看widnow对象的history。

知道了以上几点后,首先,为什么城市列表会丢失,因为它是js操作dom的结果,所以增加触发代码:

触发代码

$(document).ready(function () {
            if (!$("#CityId").val()) {
                ReloadCities();
            }});

城市是加载出来了,但是选中的状态丢了。怎么办呢,抱着绕开这个复杂的城市元素的思路,直接放个隐藏的input来保存前后的value,那么解决方案就出来了。

同步隐藏input的代码

$("#CityId").change(function () {
                $("#cityIdHidden").val($("#CityId").val());
            });

在重新加载城市列表时从隐藏input中获取value值,新代码为红色段

function ReloadCities() {
           var $ddlCity = $("#CityId");
           var selec = $("#ProvinceId").val();
           if (selec) {
               $ddlCity.find("option").remove();
               var url = "@(Url.Action("CityListByProvinceId", "Common", new { area = "Default" }))";
               $.post(url, { 'id': selec }, function (data) {
                   $.each(data, function (i, item) {
                       $("<option></option>").val(item.AddressId).text(item.AddressName).appendTo($ddlCity);
                   });
                   if ($("#cityIdHidden").val()) {
                       $("#CityId").val($("#cityIdHidden").val());
                   }
               }, "json");
           }
           else {
               $ddlCity.find("option").remove();
               $("<option></option>").val("").text("--请选择--").appendTo($ddlCity);
           }
       }

都搞定。


本文转自today4king博客园博客,原文链接:http://www.cnblogs.com/jinzhao/p/3184462.html,如需转载请自行联系原作者

相关文章:

Linux(centOS)手动安装Apache+MySQL+PHP+Memcached+Nginx原创无错版

最后更新时间&#xff1a;2012.3.21 第一步&#xff1a;Apache安装(已更新到2.2.22) 下载 去 http://www.apache.org 自己找新的 http://httpd.apache.org/ 国内有很多镜像点例如"人人"和"163" http://labs.renren.com/ 注意要找httpd&#xff0c;因为a…

首届“陇剑杯”网络安全大赛线上赛圆满结束

9月14日&#xff0c;集结了各行业领域3020支战队、11135名网络安全精英的首届“陇剑杯”网络安全大赛线上赛圆满结束&#xff0c;成功拉开将于9月25日在甘肃兰州新区举行的总决赛战幕。届时&#xff0c;涵盖网络配置、数据分析和漏洞修复等真实数字化业务场景的网络防御赛道和R…

与流氓软件的一次艰苦“奋战”

不知道大家有么有过这样的经历&#xff0c;英语不好&#xff0c;但有些时候找东西&#xff0c;还只有英文网站上有&#xff0c;但英文网站上下载东西&#xff0c;有时候不小心就会下错&#xff0c;稍有不慎&#xff0c;电脑就中标了&#xff1b;这不我昨天就遇到了&#xff0c;…

mysql5.6基于GTID主从复制设置

1.主库和从库都必须要开启binlog2.主库和从库server-id不相同3.建立主从辅助用户grant replication slave on . to rep192.168.200.% identified by oldboy;[mysqld]server-id1log-binmysql.binbinlog_formatrowgtid_modeONenforce_gtid_consistencylog_slave_updatesrelay_log…

Python 解一道江苏 小升初 数学题,如此变态,看不起来谁?

作者&#xff1a;小小明【江湖人称"明佬"】链接&#xff1a;blog.csdn.net/as604049322/article/details/118388505注明&#xff1a;本文经过作者小小明授权发布&#xff0c;可戳原文链接关注原文作者&#xff01;本文简介大家好&#xff0c;我是黄同学????前段时…

利用负载均衡优化和加速HTTP应用

1.负载均衡技术简介 现代企业信息化应用越来越多的采用B/S应用架构来承载企业的关键业务&#xff0c;因此&#xff0c;确保这些任务的可靠运行就变得日益重要。随着越来越多的企业实施数据集中&#xff0c;应用的扩展性、安全性和可靠性也越来越受到企业的重视。 负载均衡技术通…

查看sqlserver被锁的表以及如何解锁

查看sqlserver被锁的表以及如何解锁查看被锁表&#xff1a;www.2cto.com select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_typeOBJECTspid 锁表进程 tableName 被锁表名解锁&#x…

Centos 6.4下MySQL备份及还原详情介绍

我们前面文中中介绍了centos 6.4下MySQL的安装及配置&#xff0c;安装后为了保证数据的安全性所以我们同样也要学会备份及还原&#xff0c;备份及还原操作在我们的真实工作环境中是必不可少的&#xff0c;由于是对数据库数据备份&#xff0c;所以今天我们就随之介绍一下&#x…

iPhone 13 终于等到了!降价、新颜色、电池续航性能大提升

整理 | 禾木木、苏宓 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 它来了&#xff0c;真的来了&#xff01; 不知有多少朋友守在今日凌晨观看一年一度的科技春晚——苹果发布会&#xff01; 还是那个熟悉的样子&#xff0c;从加利福尼亚的沙漠中向我们走来&am…

“httpd未被被识别的服务”的解决办法

使用自动编译安装会出现这个问题&#xff0c;也就是输入 #service httpd restart 给出这样的提示&#xff1b;这时候要重启可以 #/usr/local/apache2/bin/apachectl start 如果你希望使用 #service httpd restart 那么需要按下面的做法 注意的是daemon /usr/local/apache…

安装sql 2005 闪退 连接到服务器失败。错误:0x80070424

可以尝试安装.net4.0 我是通过此办法解决。 本文转自 freeterman 51CTO博客&#xff0c;原文链接&#xff1a;http://blog.51cto.com/myunix/1751338&#xff0c;如需转载请自行联系原作者

简述DataInputStream和DataOuputStream

2019独角兽企业重金招聘Python工程师标准>>> Java开发中经常会用到IO流&#xff0c;那么就会碰到DataInputStream和DataOuputStream这两个包装类。下面就来简述一下这两种包装类的用法&#xff1a; 1.DataOutputStream&#xff1a;标准的数据输出流&#xff0c;将ja…

数字时代企业迎变局,如何让增长变简单?

随着企业数字化转型进入深水区&#xff0c;企业增长模式正迎来跨时代巨变&#xff1a;营销场景复杂且多变&#xff0c;用户触点丰富而分散&#xff0c; MarTech&#xff08;营销技术&#xff09;解决方案愈加碎片化&#xff0c;企业营销增长过程中各环节间的割裂&#xff0c;让…

Linux服务器网络开发模型

为什么Nginx的性能要比Apache高得多? 这主要是因为Nginx使用了最新的epoll&#xff08;Linux 2.6内核&#xff09;和kqueue&#xff08;FreeBSD&#xff09;网络I/O模型&#xff0c;而Apache则使用的是传统的select模型。曾在一篇博客上看到有这么个实例&#xff1a;假设你在大…

《从零开始学Swift》学习笔记(Day 47)——final关键字

在类的定义中使用final关键字声明类、属性、方法和下标。final声明的类不能被继承&#xff0c;final声明的属性、方法和下标不能被重写。 下面看一个示例&#xff1a; 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051final cl…

CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛

这个是转来的&#xff0c;细节没有验证&#xff0c;请网友自己斟酌。。。。。。。。。。CentOS 5.5 编译安装apachephpmysql&#xff0c;利用CMS快速建立论坛1、安装Apache [rootbogon tmp]# wget http://labs.renren.com/apache-mirror/httpd/httpd-2.2.15.tar.bz2 [rootbogo…

SDT(software-defined Things)?软件定义的物件

物联网&#xff08;IOT&#xff09;的概念早在1999年就被宝洁公司的员工Kevin Ashton正式提出&#xff0c;可直到这最近几年才越来越火&#xff0c;无论国内外&#xff0c;但凡跟IOT 搭上点边的都能吸引众多的目光。2014年&#xff0c;投到智能硬件方向的风险资金就占到VC的一半…

赠书福利 | Tidio AI 趋势报告:约42%受访者能够接受机器人伴侣

编译 | 禾木木出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;文章内图源&#xff1a;Tidio近日&#xff0c;波士顿动力发布了一段机器人跳舞的视频&#xff0c;有些人不敢相信他们所看到的&#xff0c;它看起来更像是皮克斯动画而不是真实的镜头。有人说&#xff1a…

Airlaunch 快捷设置代码分享

Airlaunch 快捷设置代码分享设置&#xff1a;prefs:rootSETTING蜂窝网络&#xff1a;prefs:rootMOBILE_DATA_SETTINGS_IDWIFI&#xff1a;prefs:rootWIFI定位服务&#xff1a;prefs:rootLOCATION_SERVICES蓝牙&#xff1a;prefs:rootBluetooth辅助功能&#xff1a;prefs:rootGe…

hdu3829(最大独立集)

传送门&#xff1a;Cat VS Dog 题意&#xff1a;动物园有N只猫&#xff0c;M只狗&#xff0c;P个小孩。每个小孩都有自己喜欢的动物和讨厌的动物&#xff0c;如果他喜欢狗&#xff0c;那么就讨厌猫&#xff0c; 如果他讨厌狗&#xff0c;那么他就喜欢猫。某个小孩能开心&#x…

数据科学家:那些年,我都学过哪些编程语言…

前言 我们对事物的看法各不相同&#xff0c;有时他人特别喜欢的语言可能会成为另一个人的的噩梦。而我个人的噩梦是用C语言进行日常的编程工作。 本文就介绍了作为一名数据科学家&#xff0c;我在职业生涯中所学过的语言&#xff0c;其中包括MATLAB、Weka、R、C 以及Python。 数…

short_open_tag 必须打开

在使用phpcms本地安装的过程中&#xff0c;到运行环境检测这一步&#xff0c;发现&#xff1a;short_open_tag 必须打开。 从网上搜索相关资料时&#xff0c;发现&#xff0c;将php.ini文件中的short_open_tag off 项&#xff0c;设置成on&#xff0c;重启服务器即可。 shor…

10.15 iptables filter表案例

2019独角兽企业重金招聘Python工程师标准>>> iptables常用知识回顾点 iptables -I/-A/-D 后紧跟 链 &#xff0c;可以是INPUT&#xff0c;OUTPUT&#xff0c;FORWARDiptables -P 用来指定 链的默认策略 ——>最好不要直接操作&#xff0c;否则会造成远程的终端断…

高并发大型网站架构设计

一个大型的网站网站应该由如下6个子系统组成 负载均衡系统 反向代理系统 Web服务器系统 分布式存储系统 底层服务系统 数据库集群系统 为什么要做高并发系统设计&#xff1f; 事实上&#xff0c;针对于任何单一的网络服务器程序&#xff0c;其可承受的同时连接数目是有理…

Tidio AI 趋势报告:约42%受访者能够接受机器人伴侣

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 文章内图源&#xff1a;Tidio 近日&#xff0c;波士顿动力发布了一段机器人跳舞的视频&#xff0c;有些人不敢相信他们所看到的&#xff0c;它看起来更像是皮克斯动画而不是真实的镜头。 有人说&#x…

微信公众平台对所有公众号开放自定义菜单

据统计&#xff0c;微信公众号已达1000多万了&#xff0c;但大多数没有微信认证&#xff0c;且没有开发能力&#xff0c;为此微信公众平台开放了自定义菜单功能给所有公众号&#xff0c;这是微信团队年前给广大自媒体送的大礼&#xff0c;期待微信越来越开放 公众帐号运营者点击…

SignalR网页实时推送

1.新建项目&#xff0c;选择mvc4 Wed应用程序&#xff0c;选择Internet&#xff0c;视图引擎&#xff1a;Razor 2.在控制器中添加 并添加上视图 3.引用&#xff08;install-package Microsoft.AspNet.SignalR&#xff09; 4.添加Startup 项目名 5.新建Hubs文件夹&#xff0c;添…

Hyper-V虚拟化测试05防火墙及证书配置

3.防火墙和证书3.1、防火墙配置打开Windows防火墙&#xff0c;并进入到高级配置入站规则&#xff0c;启用“Hyper-V副本HTTP侦听器&#xff08;TCP入站&#xff09;”和“Hyper-V副本HTTPS侦听器&#xff08;TCP入站&#xff09;”可以看到已经启用了如上两条规则允许入站流量3…

httpwatch的timechart 解析

从timeChart&#xff0c;我们可以一目了然的看到那些请求花费的时间较长&#xff0c;一般柱状的长短表示从请求到接受共花费的时间&#xff0c;我们重点需要优化那些柱状较长的部分&#xff0c;当然我们也可以点击time列&#xff0c;按请求时间排到序&#xff0c;直接找出请求时…

英特尔北京2022年冬奥会体验中心落成

2020年东京奥运会已圆满落幕&#xff0c;全社会进入到为北京2022年冬奥会紧锣密鼓筹备的倒计时模式。近日&#xff0c;“英特尔北京2022年冬奥会体验中心”在北京石景山区首钢园落成&#xff0c;并举办了媒体开放日活动。以体验中心为窗口&#xff0c;英特尔在近千平米的展厅中…