我有一个简单的 php 和 jquery 联系表单(3 个字段:名称 - 电子邮件 - 消息),其输入字段编码如下:
<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="requiredField"/>
我希望这些字段具有默认值,而不是为空。同时我不相信使用占位符属性,因为它不是普遍支持的。
我发现这个 jquery 脚本可以很好地完成这项工作:
<script>
$(function() {
$( ".contact_form_field" )
.focus(function() {
var $this = $(this);
if (!$this.data('default')) {
$this.data('default', $this.val());
}
if ($this.val() == $this.data('default')) {
$this.val('')
.css('color', '#000');
}
})
.blur(function() {
var $this = $(this);
if ($this.val() == '') {
$(this).val($this.data('default'))
.css('color', '#666');
}
})
.css('color', '#666')
});
</script>
但是,为了使其工作,我必须将字段的值属性更改为所需的占位符文本:
<input type="text" name="contactName" id="contactName" value="Name" class="requiredField"/>
可以预见,这似乎会干扰表单操作,如果有空字段,应该阻止发送邮件:
if(trim($_POST['contactName']) === '') {
$hasError = true;
} else {
$name = trim($_POST['contactName']);
}
我以为我只需要将字符串更改为
if(trim($_POST['contactName']) === 'Name') { or
if(trim($_POST['contactName']) == 'Name') { or
但它似乎不起作用。即使该字段保持不变(不是空的,因为显示了“名称”文本),邮件也会被发送。
我不知道我做错了什么,任何输入(对不起双关语x_x)将不胜感激。