如果在“输入”框中未输入任何内容,则ONFOCUS / ONBLUR将提交默认值而不是空值

时间:2012-12-11 20:49:45

标签: php forms default-value onblur onfocus

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

问题在于,只要用户提交表单并将名称字段留空,我就会得到默认值,而不是空字段或空字段。

<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" />

我一直在读S.O.有一段时间,并说其他选项,如onclick而不是onfocus。此外,onsubmit然后每个人都建议更改代码来处理该功能,这就是它在一个混乱的大球中融合在一起的地方。我知道这个问题一直被问到,但它们都涉及js代码更新。

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

感谢您的时间。

3 个答案:

答案 0 :(得分:0)

当用户点击提交按钮时,您的文本输入首先触发onb​​lur事件,然后表单提交。所以你要提交默认值。检查表单提交事件上的值的默认值。

答案 1 :(得分: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>

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

答案 2 :(得分:0)

您只需在placeholder标记内使用input

<input type="text" name="email" value="" placeholder="Enter Email">