Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >创建数据持久化选择选项

创建数据持久化选择选项
EN

Stack Overflow用户
提问于 2013-07-08 11:41:55
回答 1查看 1.1K关注 0票数 1

我正在用美国的城市动态地填充一个选择标签。

根据用户选择的状态,城市选择标记将动态填充来自该状态的城市。城市的选项是通过js函数创建的,js函数很好地完成了它的工作。在状态选择html标记内的'onchange‘事件上调用此函数。

与目前的工作方式一样,这些字段的全部都在表单中。每个字段都必须是数据持久化的(您在这些字段中键入的数据必须在表单提交后“填写”)。除动态填充的城市字段外,页面上当前的所有字段都是持久的,并按预期工作。这是通过创建如下格式的CF变量来实现的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<cfparam name="form.highschoolstate" default="" />
<cfparam name="form.highschoolcity" default="" />
<cfparam name="form.highschool" default="" />

在每个输入中,一个类似于以下内容的格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<select name="highschoolstate" id="highschoolstate" required="required" onchange="stateswitch('highschoolstate')" value="#form.highschoolstate#">

然而,有一个扭曲的形式,填充我的“高中城市”字段的城市不是数据持久的。对于每个州,我都有一份所有城市的清单,格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<option value=\"akiachak\">Akiachak</option>

但是,当(请查看下面的图片以获得结果)时,我尝试使用innerHTML (通过替换select标记的内容)使数据持久,我得到了这段不受欢迎的代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<option value=\"akiachak\" <cfif form.highschoolcity EQ \"akiachak\">selected=\"selected\"</cfif>>Akiachak</option>

是否有一个选项可以将这个条件CF语句放入我动态生成的html中,这样我就可以在整个表单中拥有持久的数据了吗?

动态更改select标记的函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//Dynamically changes the drop down list when selecting a city/state pair
function stateswitch(id)
{
var myId = id; //ID of the html element we are changing
var stateFlag = false; //This flag turns true when we have selected a state
var highschoolStateFlag = false; //This flag turns true when we have selected a highschool state

var indexInSelect; //Index selected in the select tag
var selectTag1; //Select tag # 1
var selectTag2; //Select tag # 2 that becomes available after select tag # 1 is selected

if(myId == "state")
{
    indexInSelect = document.getElementById("state").selectedIndex;       
    selectTag1 = document.getElementById("state").options;
    selectTag2 = document.getElementById("city");

    state = selectTag1[indexInSelect].value;

    if(selectTag1[0] == "") //If we haven't selected an option before
    {
        document.getElementById("state").remove(0); //remove the default/null case
        stateFlag = true;
    }

    if(stateFlag)
        indexInSelect = indexInSelect - 1; //accounts for offset of default case in indecees to select from        
}
else
{
    indexInSelect = document.getElementById("highschoolstate").selectedIndex;       
    selectTag1 = document.getElementById("highschoolstate").options;
    selectTag2 = document.getElementById("highschoolcity");

    document.getElementById("highschool").disabled = false;
    document.getElementById("highschool").placeholder = "Required";

    highschoolstate = selectTag1[indexInSelect].value;

    if(selectTag1[0] == "") //If we haven't selected an option before
    {
        document.getElementById("highschoolstate").remove(0); //remove the default/null case
        highschoolStateFlag = true;
    }

    if(highschoolStateFlag)
        indexInSelect = indexInSelect - 1; //accounts for offset of default case in indecees to select from        
}

selectTag2.disabled = false; //Disable the second select box (because we know at this point we have selected an option for the first one)

switch(selectTag1[indexInSelect].value)
{

 case "alabama":
      selectTag2.innerHTML="<option value=\"abbeville\" <cfif form.highschoolcity EQ \"abbeville\">selected=\"selected\"</cfif>>Abbeville</option><option value=\"abernant\" <cfif form.highschoolcity EQ \"abernant\">selected=\"selected\"</cfif>>Abernant</option>";
      break;
 case "ANOTHER_STATE":
      selectTag2.innerHTML="etc...<option value=\"...</option>"
      break;
//..
}
}

编辑解决方案:我试图做的是不可能的,所以我决定了另一种方法。

EN

回答 1

Stack Overflow用户

发布于 2013-07-08 12:33:08

从您提供的信息来看,我认为问题在于ColdFusion代码中的ColdFusion字符。您需要它来转义JavaScript代码的引号,而不是ColdFusion代码的引号。尝试从<cfif>代码中的JavaScript语句中删除这些字符。

而不是这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<cfif form.highschoolcity EQ \"abbeville\">selected=\"selected\"</cfif>

试试这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<cfif form.highschoolcity EQ "abbeville">selected=\"selected\"</cfif>

您不需要转义ColdFusion代码中的引号,因为ColdFusion服务器将在将代码输出到用户浏览器之前处理该代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17534643

复制
相关文章
Electron中数据持久化的选择
Electron是一个基于Chromium的桌面应用程序框架,它可以让开发人员在不需要熟练掌握Web开发技术的情况下,快速地开发出高质量的桌面应用程序。在Electron中,开发人员可以使用各种各样的数据存储方式,包括文件系统、数据库等。其中,数据库是一种非常常见的数据存储方式,它可以方便地存储和管理各种数据,包括文本、图片、音频、视频等。
ianzhi
2023/10/19
1.1K0
如何选择RDD持久化策略?
Spark提供的多种持久化级别,主要是为了在CPU和内存消耗之间进行取舍。下面是一些通用的持久化级别的选择建议:
编程那点事
2023/02/25
2050
数据持久化
数据持久化是将内存中的数据转换为存储模型,以及存储模型转换为内存中的数据模型的统称。数据模型可以是任何数据结构或对象模型。存储模型可以使关系模型、XML、二进制流等。cmp和Hibernate只是对象模型到关系模型之间转换的不同实现。
全栈程序员站长
2022/06/30
3550
K8s——数据持久化自动创建PV
实现k8s的数据持久化的流程为:搭建nfs底层存储---->创建PV---->创建PVC---->创建pod。最终pod中的container实现数据的持久化。
小手冰凉
2020/09/11
2.4K0
Redis持久化技术及方案选择
持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下次Redis重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。
俊才
2019/08/08
7310
Redis持久化技术及方案选择
Redis数据持久化
随着AOF不断地记录写操作日志,因为所有的操作都会记录,所以必定会出现一些无用的日志。大量无用的日志会让AOF文件过大,也会让数据恢复的时间过长。不过Redis提供了AOF rewrite功能,可以重写AOF文件,只保留能够把数据恢复到最新状态的最小写操作集。
Autooooooo
2020/11/09
7050
Redis数据持久化
Redis数据持久化
可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。
DB之路
2021/03/07
7230
redis 数据持久化
Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。 RDB持久化 RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。 手动触发数据持久化
小手冰凉
2020/07/27
5500
iOS数据持久化
// // AppDelegate.m // // import "AppDelegate.h" import "Person.h" @interface AppDelegate () @end @implementation AppDelegate (void)dealloc { [_window release]; [super dealloc]; } (BOOL)application:(UIApplication )application didFinishLaunchingWith
大师级码师
2021/10/29
5260
Redis 数据持久化
Redis支持两种数据持久化方式:RDB方式和AOF方式。前者会根据配置的规则定时将内存中的数据持久化到硬盘上,后者则是在每次执行写命令之后将命令记录下来。两种持久化方式可以单独使用,但是通常会将两者结合使用。
星哥玩云
2022/09/15
1.3K0
Redis 数据持久化
nacos数据持久化
持久化:管理的配置信息持久化。 注意:默认nacos存在配置信息持久化,默认的持久化方式为内嵌数据库derby(无法友好的展示数据)。
别团等shy哥发育
2023/02/25
9180
nacos数据持久化
docker容器数据持久化
"Failure is success if you learn from it.—— 作者未知"
小闫同学啊
2020/03/11
4.3K0
Redis的数据持久化
根据服务器是否启用了 AOF 持久化功能, 服务器载入数据时所使用的目标文件会有所不同:
真正的飞鱼
2022/12/20
4030
Docker 数据持久化Volume
Docker镜像是基于联合文件系统(Union File System)的一种层式结构,由一系列指令一步一步构建出来。
TestOps
2022/04/07
6850
Docker 数据持久化Volume
持久化内存数据访问
持久化内存访问链路 访问链路说明 第一种,应用端发起read/write操作,会进入内核的vfs的相关函数,如果数据在page cache中,直接访问page cache.如果不在则从磁盘中读取。通常内核会通过磁盘文件系统确定文件所在文件系统块的大小,根据你文件系统块大小计算出请求数据的长度,通过磁盘文件系统的函数来访问inode,然后根据inode来确定数据所在磁盘的位置。内核将所有请求转发到通用块设备,通过IO调度将IO进行重排和合并,最终通过块设备驱动层向持久化内存硬件发送IO指令进行实际的IO
用户4700054
2022/08/17
6440
持久化内存数据访问
Kubernetes数据持久化方案
在开始介绍k8s持久化存储前,我们有必要了解一下k8s的emptydir和hostpath、configmap以及secret的机制和用途。
星哥玩云
2022/07/13
8260
Kubernetes数据持久化方案
Redis初识~持久化数据
Redis我们都知道Redis的内容是放在内存当中的,如果我们的安装Redis的服务器宕机了,那么我们在内存保存的内容也就丢失了。在Redis当中给提供了不同级别的持久化的方式来进行数据的保存: RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储。 AOF持久化方式记录每次对服务器写的操作。当服务器重启的时候会重启执行这些命令来恢复原始的数据,AOF命令以redis协议追加每次写的操作到文件的末尾,Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大。 也可以不运行持久化的方式。
用户2196435
2018/07/19
6180
Redis的数据持久化
主从同步数据选择的方式-----数据持久化操作  Redis在正常关闭时触发rdb操作
星哥玩云
2022/08/18
3550
Flutter开发 - 数据持久化
数据持久化的应用场景有很多。比如,用户的账号登录信息需要保存,用于每次与 Web 服务验证身份;又比如,下载后的图片需要缓存,避免每次都要重新加载,浪费用户流量。
用户1483438
2022/03/28
1.7K0
iOS 数据持久化 - Sandbox
该篇文章是 iOS 持久化方系列的第二篇文章,第一篇请见UserDefaults 浅析及其使用管理。
CoderStar
2022/08/24
1.1K0
iOS 数据持久化 - Sandbox

相似问题

如果选择选项等于值持久化

11

iPhone上有哪些数据持久化选项?

20

持久化AlertDialog选项

12

选择选项的初始负载但不持久化

12

轻量级灵活的数据持久化选项

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文