我有一个表单,用户可以将新人添加到列表中。如果填写了必填字段,我需要它才允许表单更新。
我目前的代码适用于Chrome或FireFox,但不适用于Safari。在Chrome和FireFox中,除非填写字段,否则不会提交表单。但是,Safari允许用户提交表单,即使它是空白的。
有没有其他方法可以编写代码以使其适用于所有三种浏览器?以下是一些必填字段的代码。
<cfform method="post" action="##" name="aForm" id="addClientForm" class="">
<input type="hidden" name="method" value="clientAdd">
<input type="hidden" name="datasource" value="<cfoutput>#request.dsn#</cfoutput>">
<input type="hidden" name="Active" value="1">
<div style="float:left;" class="formContent470">
<table border="0" cellspacing="0" cellpadding="5">
<tr>
<th colspan="" style="text-align:left;">Add Client</th>
</tr>
<tr><cfoutput>
<td>
Contact
<span style="color:red">*</span>
<input type="Text" name="Contact" value="" required="Yes" message="Contact is required" maxLength="75" class="inputText430">
</td>
</tr>
<tr>
<td>
Client Name
<span style="color:red">*</span>
<input type="Text" name="ClientName" value="" required="Yes" message="Client Name is required" maxlength="75" class="inputText430">
</td>
</tr>
<tr>
<td>
答案 0 :(得分:2)
听起来像是在寻找服务器端验证。当然,我会使用Javascript验证客户端,然后使用服务器端验证客户端。
尽管有良好的意义建议,但如果可以,请避免使用CFINPUT和CFFORM(我认为其他人可能会有所不同)。使用像JQuery这样的客户端库并坚持简单的HTML HTML表单字段(离开讲台),您将获得更大的灵活性/可移植性。
话虽如此,并假设您将坚持使用服务器端验证作为起点,但是使用具有特殊形式名称属性的隐藏字段的表单验证的“旧学校”CF方法。那应该可以解决你的问题。您可以在the documentation中很好地看到此方法。
-Cheers!