Php 在输入字段中显示错误/成功消息

Php 在输入字段中显示错误/成功消息,php,ajax,forms,jsonp,Php,Ajax,Forms,Jsonp,我有一个输入字段,要求输入电子邮件地址,后跟一个提交按钮。以下是与此相关的代码: HTML <div class="email"> <form action="handler.php" method="post" id="hgb-signup"> <input type="text" name="email" id="email" value="Enter your email address"> <input type="su

我有一个输入字段,要求输入电子邮件地址,后跟一个提交按钮。以下是与此相关的代码:

HTML

<div class="email">

    <form action="handler.php" method="post" id="hgb-signup">
    <input type="text" name="email" id="email" value="Enter your email address">
    <input type="submit" name="submit" id="submit" value="&raquo;" />
    </form>

</div>
现在,当页面加载
#email
时,输入字段显示“输入您的电子邮件地址”。当您单击提交按钮时,它会用“发送…请稍候…”覆盖
#email
值,并且取决于是否存在问题或提交是否成功,在
#email
字段中会有相应的消息指示此情况。现在,当我在输入字段内单击时,“输入您的电子邮件地址”文本消失
.val(“”)
,而当我在字段外单击时,该消息仍然消失。我最初有一个
.blur()
将邮件放回,这是期望的结果,但是,当用户输入他们的电子邮件地址并点击提交时,它将提交“输入您的电子邮件地址”,而不是实际的电子邮件地址,因为当您点击提交按钮时,调用了
.blur()

现在知道了目标是什么,是否有.blur()替代方案?如果没有,我如何最好地处理这种情况

基本上,以下是我想要的:

当光标不在该字段内时,#email字段应在任何给定时间显示为“输入您的电子邮件地址”,当光标离开该字段时,该字段应返回,但我希望在提交表单后,错误/成功消息仍保留在该字段中,除非用户单击该字段内的返回并离开,否则它可以说再次“输入您的电子邮件地址”

谢谢!

请使用
.blur()
,但请先检查
val()
。仅当电子邮件为空时,替换为
“输入电子邮件”

jQuery('#email').blur(function() {
    var $this = jQuery(this);
    if ($this.val() == '') $this.val('Enter your email');
});
这是给你的,你可以检查它。我还为
focus()
处理程序添加了一个复选框,这样当你输入电子邮件后点击输入字段时,它不会删除内容。

使用
.blur()
,但首先检查
val()
。只有当它为空时,才替换为
“输入你的电子邮件”

jQuery('#email').blur(function() {
    var $this = jQuery(this);
    if ($this.val() == '') $this.val('Enter your email');
});

这是给你的,你可以查看。我还在
focus()
处理程序中添加了一个复选框,这样当你输入电子邮件后单击输入字段时,它就不会删除内容。

谢谢你的改进。focus()复选框是一个很好的添加。记住,还应该包括“错误消息”“因此,当用户输入无效电子邮件时,错误消息会显示,此字段在单击时被清除,因此用户可以输入新的电子邮件地址,但在他们成功输入后,成功消息可以保留。感谢您的改进。”。focus()检查是一个很好的补充。重要的是要记住,还要包括“错误消息”,这样当用户输入无效电子邮件时,错误消息会显示出来,单击时此字段会被清除,以便用户可以输入新的电子邮件地址,但在他们成功输入后,成功消息可以保留。