在表单中,有一些单选按钮供用户选择:
<li>
<label for="full professor"><span class="required">&##8727;</span>Is the candidate a full professor?</label>
<input type="radio" name="fullProfessor" value="yes" tabindex="4" />Yes<input type="radio" name="fullProfessor" value="no" tabindex="5" checked/>No </li>
<li>
<label for="more than ten"><span class="required">&##8727;</span>Has the candidate been here for more than 10 years?</label>
<input type="radio" name="moreThanTen" value="yes" tabindex="6" />Yes<input type="radio" name="moreThanTen" value="no" tabindex="7" checked/>No </li>
<li>
<label for="past nominee"><span class="required">&##8727;</span>Has the candidate been nominated for this award in the last 3 years?</label>
<input type="radio" name="pastNominee" value="yes" tabindex="8" />Yes<input type="radio" name="pastNominee" value="no" tabindex="9" checked/>No </li>
我不确定如何将它们包围起来。我使用的典型代码是:
<cfparam
name="FORM.fullProfessor"
type="string"
default=""
/>
是类型字符串,即使它不接受像textfield那样的字符串吗?
要验证单选按钮,请使用:
<!--- Validate campus address. --->
<cfif NOT Len( FORM.fullProfessor)>
<cfset ArrayAppend(
arrErrors,
"Error message here."
) />
</cfif>
最后,在验证页面后维护用户的选择,我该如何确保这一点?
<cfif isDefined(form.fullProfessor) selected="yes">?
感谢。
答案 0 :(得分:1)
如果您使用“是”和“否”,您可以将它们视为布尔值。
<cfparam
name="FORM.fullProfessor"
type="string"
default=false
/>
和
<cfif NOT FORM.fullProfessor>
<cfset ArrayAppend(
arrErrors,
"Error message here."
) />
</cfif>
和
<cfif form.fullProfessor selected="yes">
您还可以使用框架验证表单,我强烈建议验证这一点:http://www.validatethis.org/
答案 1 :(得分:0)
是类型字符串,即使它不接受像a这样的字符串 textfield会吗?
type
是您希望FORM.fullProfessor
包含的值(日期,数字,字符串等)。由于您的单选按钮值为“是”或“否”,因此您可以在技术上使用type="string"
或type="boolean"
。
在验证页面后保持用户的选择
由于您已使用cfform,因此可以使用<cfform preserveData="yes" ..>
。 (注意:表格必须提交到同一页面)。它将保留大多数表单字段的状态。或者,您可以利用单选按钮值为布尔值的事实,并使用它来设置按钮的checked
状态。
<cfparam name="FORM.fullProfessor" type="boolean" default="no" />
<cfform>
<cfinput type="radio" name="fullProfessor" checked="#FORM.fullProfessor#" value="Yes"> yes
<cfinput type="radio" name="fullProfessor" checked="#not FORM.fullProfessor#" value="no"> no
<input type="submit">
</cfform>
To validate the radio button
我不确定这里的验证有多么有用。您可以将默认值设置为no
之类的合理值,并将其保留。取决于表格。
答案 2 :(得分:0)
使用现有CF函数的structkeyexists
<input type="radio" name="fullProfessor" value="yes" tabindex="4" <cfif structkeyexists(form.fullProfessor) AND form.fullProfessor EQ "true">checked</cfif> />