预填表格字段

问题描述:

因此,我已经使用预填表格字段(如“名字”,“电话”或“邮编”)继承了此表单,以便用户知道如何处理字段。但是,如果任何人只是按下按钮,表单将传递“名字”,“电话”或“邮编”到数据库中。在onFocus中似乎没有工作。有任何想法吗?预填表格字段

<input type="" maxlength="25" name="firstname" tabindex="6" id="firstname" class="textfield" value="First Name" onFocus="if (this.value == 'First Name') {this.value = '';}"> 

由于提前, -Bob

+1

如果您使用支持HTML5的浏览器,请尝试使用placeholder =“First Name” – 2012-02-17 02:01:38

+1

要充分利用Stack Overflow,您需要付出一些努力。你的问题需要提供足够的背景和细节,以便让喜欢帮助这样做的人们(比如我自己!)。在这种情况下,请:显示HTML表单的片段,显示所涉及的任何Javascript,并详细说明预期的/期望的行为。谢谢! – 2012-02-17 02:02:56

+0

> – bobbiloo 2012-02-17 02:13:20

正如其他人所建议的,使用placeholder属性来设置字段的'标签'。另外,如果您已经使用jQuery来简化您的Javascript,那么您可以使用像this one这样的插件,它将为非HTML兼容浏览器添加对占位符属性的支持。

这些插件通常还会处理在表单提交给服务器之前从字段中删除占位符文本的关键步骤,该服务器应将空值发送到服务器而不是占位符文本。

+0

另外,如果可访问性是一个问题,那么如果你还可以包含'

首先它是不好的做法,标签应该是标签,放在前场,他们正在标记。不在里面。

Name: [________] 
=== NOT === 
[Name____] 

就像在纸上的形式。

如果您必须在框中有文本,请使用placeholder属性。但请注意,只有最新的浏览器支持它。

至于解决提交默认值的问题,只需检查您要输入数据库的值是否为默认值,如果是,则阻止它。

+0

这有什么不好?有些情况下可能比另一个更可取。 – 2012-02-17 02:25:03

+0

一旦用户用默认值替换了默认值,他们就不再有标签来告诉他们该字段的用途。 – RobG 2012-02-17 02:28:36

除了什么Kolnik说,你可以做的是有使用类似的默认值文本输入一个简单的验证:

if (input.value == input.defaultValue || /^\s*$/.test(input.value)) { 
    // field value isn't valid 
} 

检查,如果该值仍然是默认,为空或空白。但请记住,客户端验证是完全不可靠的,所以在服务器上进行真正的验证。

+0

我相信你的意思是'/^\ s * $ /。test(input.value)' – zzzzBov 2012-02-17 02:29:18

+0

啊,是的,谢谢。不太可能的价值将是一个RegExp。 :-) – RobG 2012-02-17 03:20:56

+0

感谢大家对“占位符”的提示。这正是医生的要求。只是最后一件事...我能做些什么关于IE 7或8? (恐怕我知道答案;-) – bobbiloo 2012-02-18 22:06:35