预填表格字段
因此,我已经使用预填表格字段(如“名字”,“电话”或“邮编”)继承了此表单,以便用户知道如何处理字段。但是,如果任何人只是按下按钮,表单将传递“名字”,“电话”或“邮编”到数据库中。在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
正如其他人所建议的,使用placeholder
属性来设置字段的'标签'。另外,如果您已经使用jQuery来简化您的Javascript,那么您可以使用像this one这样的插件,它将为非HTML兼容浏览器添加对占位符属性的支持。
这些插件通常还会处理在表单提交给服务器之前从字段中删除占位符文本的关键步骤,该服务器应将空值发送到服务器而不是占位符文本。
另外,如果可访问性是一个问题,那么如果你还可以包含'
首先它是不好的做法,标签应该是标签,放在前场,他们正在标记。不在里面。
Name: [________]
=== NOT ===
[Name____]
就像在纸上的形式。
如果您必须在框中有文本,请使用placeholder
属性。但请注意,只有最新的浏览器支持它。
至于解决提交默认值的问题,只需检查您要输入数据库的值是否为默认值,如果是,则阻止它。
这有什么不好?有些情况下可能比另一个更可取。 – 2012-02-17 02:25:03
一旦用户用默认值替换了默认值,他们就不再有标签来告诉他们该字段的用途。 – RobG 2012-02-17 02:28:36
除了什么Kolnik说,你可以做的是有使用类似的默认值文本输入一个简单的验证:
if (input.value == input.defaultValue || /^\s*$/.test(input.value)) {
// field value isn't valid
}
检查,如果该值仍然是默认,为空或空白。但请记住,客户端验证是完全不可靠的,所以在服务器上进行真正的验证。
如果您使用支持HTML5的浏览器,请尝试使用placeholder =“First Name” – 2012-02-17 02:01:38
要充分利用Stack Overflow,您需要付出一些努力。你的问题需要提供足够的背景和细节,以便让喜欢帮助这样做的人们(比如我自己!)。在这种情况下,请:显示HTML表单的片段,显示所涉及的任何Javascript,并详细说明预期的/期望的行为。谢谢! – 2012-02-17 02:02:56
> – bobbiloo 2012-02-17 02:13:20