表单错误中未定义ColdFusion 10获取元素
我有一个ColdFusion 10表单,在其中添加了一个新的多选列表表单错误中未定义ColdFusion 10获取元素,coldfusion,multi-select,coldfusion-10,cfml,Coldfusion,Multi Select,Coldfusion 10,Cfml,我有一个ColdFusion 10表单,在其中添加了一个新的多选列表 <SELECT multiple="multiple" id="icd9list" name="icd9list" size="2" class="pageText2" style="width:400px;"> </SELECT> 我还尝试使用custform.icd9list,但遇到了同样的问题: 元素ICD9LIST在CUSTFORM中未定义 这个页面是一
<SELECT multiple="multiple" id="icd9list"
name="icd9list"
size="2"
class="pageText2"
style="width:400px;">
</SELECT>
我还尝试使用custform.icd9list
,但遇到了同样的问题:
元素ICD9LIST在CUSTFORM中未定义
这个页面是一些非常遗留的代码,我们不能返回并重构太多。我唯一想到的是,当页面第一次加载时,multiple-select选项是空的,然后我们通过javascript从一个弹出窗口向它添加选项。当我在Chrome中检查元素时,在我添加了选项之后,它们就在那里了,但是我想知道它是否仍然被视为一个空白的多选列表。我知道如果我删除multiple属性并将表单元素视为一个下拉列表,它将在表单转储中显示一个值,但仅显示第一个(或任何选定的)值
开始认为答案可能是填充一个带有选项值的隐藏字段,并让表单读取该字段。您如何调用表单?您使用的是
form.variable
还是icd9list.variable
?除非页面上有多个表单,否则不必为其指定ID或名称。您只需name
和ID
您的元素,并像这样引用它:form.name
向多选列表中添加选项是不够的。他们也必须被选中。否则,该列表将不被视为一个字段,并且该字段将不会传递到操作页面(emphasis mine)
成功的控件对于提交是“有效的”。每一个成功的
控件将其控件名与其当前值配对作为
提交的表单数据集。必须定义一个成功的控件
在表单元素中,并且必须具有控件名称
然而:
- 禁用的控件不能成功
- 如果表单包含多个提交按钮,则只有激活的提交按钮成功
- 所有“打开”复选框都可能成功
- 对于共享名称属性相同值的单选按钮,只有“开”单选按钮可能成功
- 对于菜单,控件名称由选择元素提供,值由选项元素提供。只能选择选定的选项 成功如果未选择任何选项,则控件不可用 成功,并且名称或任何值都不会提交到 提交表单时使用服务器
- 文件选择的当前值是一个或多个文件名的列表。提交表格后,每个文件的内容如下: 与其他表单数据一起提交。文件内容如下: 根据表单的内容类型打包
- 对象控件的当前值由对象的实现决定
我怀疑表单在提交表单之前没有强制“选择”项目,这就是为什么操作页面上没有显示任何内容 听起来你需要两件事中的一件 或者在客户端需要它
<SELECT multiple="multiple" required id="icd9list" name="icd9list" size="2" class="pageText2" style="width:400px;">
...
</SELECT>
...
或者确保ColdFusion可以处理服务器端不存在的问题
<cfparam name="icd9list" default="">
如前所述,
<cfparam name="form.icd9list" default="">
将得到更窄的范围我将其引用为updform.cfm(表单操作文件)中的form.icd9list,这不是访问表单变量的方式。您基本上是说form.form,因为您将表单命名为icd9list。把你的名字和身份证从表格上去掉。然后根据需要命名和标识输入。示例:您希望将其引用为form.name,并且希望您的cfparam为name=“form.name”,并且每次调用它时,都需要将其指定为form.name,除非您将form.name设置为新变量名。no。。该表单实际上被命名为“custform”(请参阅初始帖子中的cfform标记)。我将尝试查看custform.icd9list是否有效。icd9list是表单元素名try custform.icd9list,但是如果它不起作用,我想看一下您的代码,这样我就可以更容易地告诉您出了什么问题。您真的选择了什么吗?将项目添加到多选中并不意味着什么,您仍然需要实际选择项目。以前我在提交时就这样做了,只需选择所有已添加的项目。@haxtbh即使您没有选择任何内容,select form元素是否仍然存在?您是否在此页面上使用其他JS库?如果从multiple中删除属性值并只键入
multiple
,会发生什么情况?@Shawn No,有点像复选框、单选按钮或任何禁用的表单项。如果它们未被勾选/激活等,则不会在表单范围内通过。“尝试使用custform.icd9list”FWIW,您永远不会使用cfform
的名称。在CF中,POST变量总是提交到名为表单
的特殊系统作用域(无论cfform/FORM的名称如何)。更好的是,两者都使用;-)@jjasper0729-还应确保在cfparam中包含范围,即
<cfparam name="form.icd9list" default="">