我有一个简单的表单,我试图传递数据,在操作页面上有一个电子邮件,发送我放入表单的数据。
在我的表单页面上。我有一个文本字段和两个单选按钮。
如果我没有将数据放入其中,我的文字字段就可以使用。但是,在我的单选按钮上,如果我检查它,页面是有效的,但是如果我根本不检查它会导致我的页面被打破,我不能确定我做错了什么?我希望页面处理默认值为" no"如果我没有检查任何单选按钮。我需要验证还是其他什么?
这是我的代码。
<cfparam name="form.firstName" default="">
<cfparam name = "form.optradio1" default="no">
<form action="test.cfm" method="post">
<label for="firstName"></label>
<input type="text" name="firstName">
<input type="radio" name="optradio1" Value="Male" <cfif form.optradio1 eq "Yes">checked</cfif>>
</form>
答案 0 :(得分:3)
这就是无线电和复选框输入在HTML中的工作方式。如果未选中,则不会在提交表单上提交。
要确定是否已检查无线电输入,您可以使用
如{中的.then
structKeyExists(form, <name of the input, as string>)
。
structKeyExists(form, "optradio1")
假设您有两个无线电输入:
<cfparam name="form.firstName" default="">
<form action="test.cfm" method="post">
<label for="firstName"></label>
<input type="text" name="firstName">
<input type="radio" name="optradio1" Value="Male" <cfif structKeyExists(form, "optradio1")>checked</cfif>>
</form>
您的初始代码无效,因为:
<cfparam name="form.firstName" default="">
<form action="test.cfm" method="post">
<label for="firstName"></label>
<input type="text" name="firstName">
<input type="radio" name="optradio1" Value="Male" <cfif structKeyExists(form, "optradio1") and form.optradio1 eq "Male">checked</cfif>>
<input type="radio" name="optradio1" Value="Female" <cfif structKeyExists(form, "optradio1") and form.optradio1 eq "Female">checked</cfif>>
</form>
等于form.optradio1
Male
因默认而被默认为form.optradio1
no