我想提交表单,然后将表单自我引用并保留值。
如何设置它以保留我选择的项目?它可以在第二次表格加载时保留所选项目的值吗? 我所知道的是,我可能不得不做一个CFloop,而不是直接在查询属性上运行我的查询。
继承我的选择代码:
<cfselect Name="CandyLand" required="yes" size="6"
Query="getCandyInfo" style="width: 200px"
Value="UserID" Display="Name" >
<Option selected="selected"></option>
</cfselect>
编辑:
好吧,Dan的解决方案似乎就我如何提出问题而言起作用。我忘了提到我有3个其他表单对象,我希望在表单提交时保留其表单值。例如,我有一个文本框,一个2单选按钮,以及一个我想保留其值的复选框。这些值是通过 Bind 获得的,当我点击<Select>
中的其他对象时,会更改这些对象的值。
例如:
<cfinput name="Chocolate" type="checkbox"
bind="cfc:Candyland.getFat({CandyLand@click})" bindAttribute="checked" value="#Form.Chocolate#">
尽管保留了已点击的项目,但在提交后,所有对象都会变为空白。
答案 0 :(得分:4)
使用<cfselect>
让自己的生活更加艰难。只需使用普通<select>
,然后通过表单提交检查其值,将相应选项设置为“已选中”。
<select name="CandyLand" [etc]>
<cfloop query="getCandyInfo">
<option value="#userId#"<cfif userId eq form.CandyLand> selected</cfif>>#name#</option>
[etc]
CFML社区中有一个积极的举动,就是放弃这种语言,并鼓励人们使用更强大的解决方案:
答案 1 :(得分:0)
cfselect具有选定的属性。您只需检查表单是否已提交。
if (StructKeyExists(form, "CandyLand"))
SelectedValue = Form.CandyLand;
else
SelectedValue = GetCandyInfo.UserID[1];
<cfselect name="CandyLand" etc
selected = SelectedValue>