0

我已经用一些动态操作替换了默认的“值”。输入框中有一个默认值,用户点击,默认值被删除。用户离开并且不输入任何内容,默认值重新出现。到目前为止,一切都很好。

问题是,每当用户提交表单并将名称字段留空时,我都会得到默认值,而不是什么都没有或一个空字段。

<input style="width:95%;" type="text" name="email" 
onfocus="if(this.value==this.defaultValue)this.value=''" 
onblur="if(this.value=='')this.value=this.defaultValue" 
value="<?php echo $entry_email; ?>" maxlength="27" size="50" />

我已经阅读了一段时间,并说其他选项,例如 onclick 而不是 onfocus。此外,onsubmit 然后每个人还建议更改代码以处理该功能,这就是所有内容混合在一起的地方。我知道这个问题被问了一遍又一遍,但它们都涉及 js 代码更新。

我是否疯狂地认为我的上面的代码可以稍微修改一下,所以检查默认值是填写还是空白,但不提交默认值?

谢谢你的时间。

4

3 回答 3

0

当用户单击提交按钮时,您的文本输入首先触发 onblur 事件,然后表单提交。所以你提交的是默认值。检查与表单提交事件上的值匹配的默认值。

于 2012-12-11T20:53:40.820 回答
0

尝试分离 html 和 js 代码。使用jquery,简单易学

<input style="width:95%;" type="text" id="email" name="email" value="<?php echo $entry_email; ?>" maxlength="27" size="50" />
<script language="javascript" src="http://code.jquery.com/jquery.min.js"></script> 
<script language="javascript">         
$('#email').blur(function() {
          $('#email').val(defaultValue);
        });
</script>

并检查用户的电子邮件值是否等于默认值,然后停止表单提交。

于 2012-12-11T21:04:18.183 回答
0

您可以简单地使用placeholder内部input标签。

<input type="text" name="email" value="" placeholder="Enter Email">
于 2012-12-11T21:07:59.687 回答