0

連絡先ページがあり、名前*フィールドを5文字として読み取るphpに問題があります。これは、最初に名前*をテキスト領域内に配置することでWebページのスペースを節約しているためです。Google で調査しましたが、これらの文字を無視するためのコードが見つかりません。私が持っている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

コリンクが言ったように、あなたは|| $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 に答える
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 は正しいです。これがどのようにスペースを節約するのかわかりません。テキスト ボックスのすぐ外側にある Name* です。本当にボックス内に保持したい場合は、クリックされたときに JavaScript を使用してボックスをクリアできます。

于 2012-07-21T00:08:17.630 に答える