我有以下 HTML/PHP 注册表单:
<div class="form_block" id="dob-check" style="display:none; float:left">
<p><label for="sign_up_dob_day">DOB</label> <select name="sign_up_dob_day" id="sign_up_dob_day" class="required"><option value="">-</option><?php for($day = 1; $day <= 31; $day++) : ?>
<option value="<?php echo $day ?>" <?php echo set_select('sign_up_dob_day', $day, ((is_array($dob) && count($dob) == 3 && $dob[2]==$day)? true : false)); ?>><?php echo $day ?></option>
<?php endfor; ?>
</select>
<select name="sign_up_dob_month" class="required">
<option value="">-</option>
<?php $months = getMonthsArray(); ?>
<?php for($month = 1; $month <= 12; $month++) : ?>
<option value="<?php echo $month ?>" <?php echo set_select('sign_up_dob_month', $month, ((is_array($dob) && count($dob) == 3 && $dob[1]==$month)? true : false)); ?>><?php echo $months[$month - 1] ?></option>
<?php endfor; ?>
</select>
<select name="sign_up_dob_year" class="required">
<option value="">-</option>
<?php for($year = 2005; $year >= 1930; $year--) : ?>
<option value="<?php echo $year ?>" <?php echo set_select('sign_up_dob_year', $year, ((is_array($dob) && count($dob) == 3 && $dob[0]==$year || (empty($dob[0]) && $year==1990)))? true : false); ?>><?php echo $year ?></option>
<?php endfor; ?>
</select>
<?php echo form_error('sign_up_dob_day'); ?>
<a class="hand" id="dob-why" onclick="showMessage()"> Why do we need this?</a></p>
</div>
显示如下:
但是,如果用户未能输入 DOB,则选择框的格式会完全困惑,如下所示:
我猜是因为添加“必填字段”文本时 div 的宽度不够。
我试过放置一个外部 div,但这没有用。我也试过向左浮动,但这也没用。
我是 PHP 的新手,所以不知道如何删除第二个“必填字段”消息 - 这可能有帮助吗?
任何其他想法,例如防止在 div 中形成新行?
最佳答案
尝试在输入和错误消息上使用 display: inline-block
而不是 display: block
。
应该解决问题。
关于php - 防止在 div 中形成新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28760604/