0

我有一个联系页面,我在 php 将 Name* 字段读取为 5 个字符时遇到问题,因为我通过将 Name* 放在文本区域开头来节省网页上的空间。我在谷歌上进行了研究,但找不到任何代码来帮助忽略这些字符。我拥有的 php 发布在下面。

if(!$name || strlen($name) < 5) {
    $error .= "Please enter your name.<br />";
}

所以我遇到的问题很可能有人有一个 3 个字母的名字。

4

5 回答 5

4

这里有一个提示:不要。使用真实的标签,不要只是在文本框中转储默认文本。此外,它如何节省空间?

<input type="text" name="name" value="Name*" />
Name*: <input type="text" name="name" />

没有意义。


如果必须,只需|| $name == "Name*"在此处添加即可。

于 2012-07-21T00:01:54.890 回答
3

您可以使用:

<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)

于 2012-07-21T00:06:11.910 回答
0

如果您真的想这样做以节省布局空间,您可以尝试这样的事情来清除字段中的默认值,当您聚焦该字段时。

<input type="text" onfocus="if(this.value == 'value') { this.value = ''; }" value="value" />
于 2012-07-21T00:07:37.073 回答
0

您可以使用substr跳过前 5 个字符。

假设您使用 POST 传递表单数据

$name = substr($POST['name'], 5)

Kolink 是对的,我看不出这如何节省空间,就在文本框之外的名称*。如果您真的想将其保留在框内,则可以在单击框时使用 JavaScript 清除框。

于 2012-07-21T00:08:17.630 回答
0

正如 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;
}
于 2012-07-21T00:15:34.507 回答