我的html表单中有文本框来输入电子邮件ID。在用户单击文本框之前,我正在显示默认文本Enter Your Email ID here
,我的代码是
<input class="textbox" type="text" id="emailbox" name="emailbox" value="Enter Your Email ID here" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
现在,一旦我提交表单而不是默认文本Enter Your Email ID here
我需要在文本框中显示用户输入的电子邮件ID。
表单提交后,我能够使用以下代码在普通文本框上显示用户输入的数据
<input class="textbox" id="mem_count" name="mem_count" type="text" value="<?php if(isset($_POST['mem_count'])) { echo htmlentities ($_POST['mem_count']); }?>" />
如何在具有默认文本的电子邮件文本框中保留相同的数据?
只需在条件上添加一个 else 语句就可以了,如果没有数据,则回显默认文本
<input class="textbox" id="mem_count" name="mem_count" type="text" value="<?php if(isset($_POST['mem_count'])) { echo htmlentities ($_POST['mem_count']); } else { echo "Enter Your Email ID here";}?>" placeholder="Enter Your Email ID here" onfocus="if(this.value=='Enter Your Email ID here')this.value='';" onblur="if(this.value=='')this.value='Enter Your Email ID here';" />
输入值的初始化:
<?php
$value=(isset($_POST['mem_count'])) ? htmlentities ($_POST['mem_count']) :"Enter Your Email ID here";
?>
HTML:
<input class="textbox" id="mem_count" name="mem_count" type="text" value="<?php echo $value ?>" />
我喜欢
ravenlp 的解决方案,在登录失败的情况下,使用发布的值可能更有用。
<input value="<?php echo ((@$_POST['emailbox']) ?: 'Enter Your Email ID here') ?>" class="textbox" type="text" id="emailbox" name="emailbox" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
您实际上应该使用 HTML 属性placeholder
因为它会在字段为空时自动显示占位符。
<input class="textbox" type="text" id="emailbox" name="emailbox" value="<? $_POST['mem_count'] ?>" placeholder="Enter Your Email ID here" />
这也消除了启用 JavaScript 以使用表单字段而无需手动清除表单字段的需要。我亲自在IE7+中测试过它,我读到Chrome/Safari 4.0+和Firefox 3.7+支持它。