表单错误消息不起作用

时间:2013-10-21 13:32:35

标签: php forms validation

在XHTML文档中为“联系我们”页面创建了一个表单。如果未填充/选择已加星标的表单,则会出现错误消息,并且除了一个输入框之外,它适用于每个输入框。

这是错误消息无效的下拉形式:

<div class='container'>
<label for='destemail' >Select department you're trying to reach: 
<font style="color:#f93;  margin-left:-2px; ">*</font></label></br>

<select name="destemail" id="destemail">
<?php foreach ($emailAddresses as $name => $email) { ?>  

<option value="<?php echo htmlspecialchars($destemail); ?>">
<?php echo htmlspecialchars($name) ; ?></option> 
<?php } ?>
</select>
<span id='contactus_destemail_errorloc' class='error'></span>
</div>

每当我测试表单时,无论是否在此处选择部门,都会显示错误消息“请选择部门”。我只需要显示如果某个部门实际上没有被选中。

这是PHP:

if(empty($_POST['destemail']))
{
    $this->add_error("Please select a department.");
    $ret = false;
    }

这是Javascript:

<script type='text/javascript'>
// <![CDATA[

var frmvalidator  = new Validator("contactus");
frmvalidator.EnableOnPageErrorDisplay();
frmvalidator.EnableMsgsTogether();

frmvalidator.addValidation("destemail","req","Please select a department.");

// ]]>

</script>

因为我不是一个Web开发人员,只是一个设计师,而且由于教程和Stack Overflow上的陌生人的帮助,我得到了这个表格,我很困惑为什么我的错误信息不断出现无论是否选择了部门。感谢帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

我认为正是因为这一点,你对电子邮件的价值是一个未定义的变量,所以它将通过空:<option value="<?php echo htmlspecialchars($destemail); ?>">

只需更改为

<select name="destemail" id="destemail">
<?php foreach ($emailAddresses as $name => $email) { ?>  

<option value="<?php echo htmlspecialchars($email); ?>">
<?php echo htmlspecialchars($name) ; ?></option> 
<?php } ?>
</select>