我有一个联系页面,我在 php 将 Name* 字段读取为 5 个字符时遇到问题,因为我通过将 Name* 放在文本区域开头来节省网页上的空间。我在谷歌上进行了研究,但找不到任何代码来帮助忽略这些字符。我拥有的 php 发布在下面。
if(!$name || strlen($name) < 5) {
$error .= "Please enter your name.<br />";
}
所以我遇到的问题很可能有人有一个 3 个字母的名字。
我有一个联系页面,我在 php 将 Name* 字段读取为 5 个字符时遇到问题,因为我通过将 Name* 放在文本区域开头来节省网页上的空间。我在谷歌上进行了研究,但找不到任何代码来帮助忽略这些字符。我拥有的 php 发布在下面。
if(!$name || strlen($name) < 5) {
$error .= "Please enter your name.<br />";
}
所以我遇到的问题很可能有人有一个 3 个字母的名字。
这里有一个提示:不要。使用真实的标签,不要只是在文本框中转储默认文本。此外,它如何节省空间?
<input type="text" name="name" value="Name*" />
Name*: <input type="text" name="name" />
没有意义。
如果必须,只需|| $name == "Name*"
在此处添加即可。
您可以使用:
<input type="text" name="name" value="" placeholder="Name*" />
除了旧版本的 IE - http://www.w3schools.com/html5/att_input_placeholder.asp ,大多数浏览器都不支持此功能
更好的参考网站 - http://caniuse.com/input-placeholder (thnx Celeritas)
如果您真的想这样做以节省布局空间,您可以尝试这样的事情来清除字段中的默认值,当您聚焦该字段时。
<input type="text" onfocus="if(this.value == 'value') { this.value = ''; }" value="value" />
您可以使用substr跳过前 5 个字符。
假设您使用 POST 传递表单数据
$name = substr($POST['name'], 5)
Kolink 是对的,我看不出这如何节省空间,就在文本框之外的名称*。如果您真的想将其保留在框内,则可以在单击框时使用 JavaScript 清除框。
正如 Kolink 所说,您可以添加|| $name == "Name*"
到您的if
声明中。
否则,这更多的是客户端问题。如果您使用的是 JQuery,则可以执行以下操作:
$('#name').attr("is_focused",0);
$('#name').focus(function(){
if($(this).attr("is_focused")==0){
$(this).val("");
$(this).attr("is_focused",1);
}
});
然后,当用户提交表单时,请执行以下检查:
if($('#name').attr("is_focused")==0){
alert('You must enter your name');
return;
}