0

我想创建一个要求,如果从我的联系表单的下拉字段中未选择任何内容,则会出现一条消息说“请选择”,并且除非选择某些内容,否则该表单将无法提交。我已经获得了处理所有文本输入表单的要求,但无法弄清楚如何为下拉字段创建一个。

下拉 HTML 如下所示:

<div class='container'>

<label for='destemail' > Which department are you trying to reach?*</br> You must select a department.</label></br>

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

 </div>

我得到了其他表单要求,如下所示:

HTML -

<div class='container'>
    <label for='name' >Your Full Name*: </label><br/>
    <input type='text' name='name' id='name' value='<?php echo $formproc->SafeDisplay('name') ?>' maxlength="50" /><br/>
    <span id='contactus_name_errorloc' class='error'></span>
</div>

Javascript -

<script type='text/javascript'>
<![CDATA[
var frmvalidator  = new Validator("contactus");
frmvalidator.EnableOnPageErrorDisplay();
frmvalidator.EnableMsgsTogether();
frmvalidator.addValidation("name","req","Please provide your name");
</script>

PHP -

//name validations
        if(empty($_POST['name']))
        {
            $this->add_error("Please provide your name");
            $ret = false;
        }

我为下拉菜单尝试了完全相同的编码,但在适当的地方使用了不同的 id 名称,但它不起作用。为什么这种相同的方法不适用于下拉菜单?

非常感谢帮助!

4

1 回答 1

0

我看不到 Validator() 代码在做什么,但您可以使用 Javascript 或 jQuery 检查选​​择字段是否为空。

jQuery方式:

if( !$('#destemail').val() ) {
    alert('Empty');
}

问题可能在于您的选择框实际上确实有一个值,即打印出来的第一个值是什么。Validation 函数可能正在检查任何值,并且由于 select 确实有一个值,因此它返回为有效值。

您可以设置一个默认值首先显示,例如“请选择一个部门”,然后执行 jquery/javascript 检查该文本。如果它存在,那么您知道尚未选择一个选项。

于 2013-05-07T18:02:04.287 回答