我正在尝试手动设置一个变量INSIDE表单,因为它包含html并将其放在标签的value属性中会导致显示错误。目前,我检查该属性是否包含html,如果是,则该字段为空。
如果它在表单的先前条目中包含html,我希望能够将变量设置为旧值,这样用户每次加载ORM对象时都不必输入该字段进行编辑
这是一个片段:
<cfif ("#dataobject.getField()#" NEQ "" AND Left(dataobject.getField(), 1) EQ "<")>
<cfscript>
temp = dataobject.getField();
temp2=temp;
temp2 = Insert("---", temp2, 0);
temp2 = Insert("<!", temp2, 0);
temp2 = Insert("--->", temp2, Len(temp2));
dataobject.setField(temp2);
</cfscript>
<label for="name">
Field:
</label>
<input type="text" name="Field" value="">
<button id="savefield" name="savefield">Save</button>
<cfif form.Field EQ ""><cfset form.Field = temp></cfif>
<cfscript>
dataobject.setField(temp);
</cfscript>
<cfelse>
<label for="name">
Field:
</label>
<input type="text" name="Field" <cfif ("#dataobject.getField()#" NEQ "")>value="#dataobject.getField()#"</cfif>>
<button id="savefield" name="savefield">Save</button>
</cfif>
我尝试使用的代码:
<cfif form.Field EQ ""><cfset form.Field = temp></cfif>
Coldfusion抛出一个错误,说FORM变量是未定义的(这并不让我感到惊讶)。 “savefield”按钮调用javascript打开一个窗口,允许用户设置值,然后关闭。我应该把代码放在那里吗?
- 将字符串转换为注释的插入是早期尝试解决方法的问题:/
答案 0 :(得分:3)
好的希望以下指示可以帮助您:
所以例如;
<cfparam name="form.field" default="" />
<label for="field">
Field:
</label>
<input type="text" id="field" name="field" value="#htmlEditFormat(form.field)#" />
<button id="savefield" name="savefield">Save</button>
Gl!
答案 1 :(得分:2)
如果您想在使用cfparam之前强制将某个值放入表单(或任何)范围内。
<cfparam name = "form.field" default = "">
<cfif form.Field EQ "">
<cfset form.Field = temp>
</cfif>
基本上这和
是一回事<cfif !structKeyExists(form,"field")>
<cfset form.field = "">
</cfif>
答案 2 :(得分:0)
不要忘记保存的是你的朋友。 如果提前填充表单字段,则不必担心value =“”属性。
<cfquery name="qry">
SELECT Field1,Field2
FROM table
WHERE ID=<cfqueryparam cfsqltype="cf_sql_integer" value="#url.ID#">
</cfquery>
<cfloop list="#qry.Columnlist#" index="FieldName">
<cfset form[FieldName] = HTMLEditFormat(qry[FieldName][1])>
</cfloop>
<cfform preservedata="yes">
<label for="Field1">Field One:</label>
<cfinput name="Field1">
<label for="Field2">Field Two:</label>
<cfinput name="Field2">
</cfform>