0

この例のような形式でテキストフィールドを作成することに精通している:-

Name  :<input type="text" name="visitor" /><br /><br />
Email :<input type="text" name="visitormail" /><br /><br />
Phone :<input type="text" name="visitorphone"/><br /><br />

このタイプの例と同じように検証します。-

$vname = $_GET["visitor"];
$vemail = $_GET["visitormail"];
$vphone = $_GET["visitorphone"];

    // VALIDATION INTRODUCTION - THESE ARE THE FORM FIELDS THAT WE REQUIRED THE VISITOR TO FILL IN  
        if(empty($vname) 
        || empty($vemail) 
        || empty($vphone)) 
        { 
        echo "<h2>Go Back and fill in all fields  </h2>\n";
        die ("Use the Go Back button !! ");
        }
        if(!$vemail == "" && (!strstr($vemail,"@") || !strstr($vemail,"."))) 
        {
        echo "<h2>Go Back and enter a valid E-mail Address</h2>\n";
        die ("Use the Go Back button !!");  
        }

上記のスクリプトは機能します....この画像を参照してください!代替フォームレイアウト

私が持っている質問は???

次の例のように、onfocusテキストフィールドを使用してフォームを作成する場合:-

<input type="text" name="visitor" value="NAME" size="23" onfocus="if (this.value == 'NAME') {this.value = '';}" onblur="if (this.value == '') {this.value = 'NAME';}">

....テキストフィールドにすでにエントリがあるため、上記の検証は機能しなくなりました。

上記の検証を新しいオンフォーカス状況で使用するために採用できますか?

4

1 に答える 1

0

最も簡単な方法は、現在のスクリプトのifステートメントを次のように変更することです。

if((empty($vname) || trim(strtolower($vname)) == 'name')
|| (empty($vemail) || trim(strtolower($vemail)) == 'email') 
|| (empty($vphone) || trim(strtolower($vphone)) == 'phone'))

現在のスクリプトに満足している場合は、これで作業は完了しますが、検証に関しては、かなりエラーが発生しやすく、現時点ではユーザーフレンドリーではないように思われるため、全体としてはるかに優れた結果が得られます。はサンプルスクリプトなので、おそらくそれは意図的なものです。

とにかく、私が言ったように、それはあなたの現在のスクリプトで最も簡単な方法ですが、決して最良の方法ではありません。

于 2011-11-11T18:37:28.660 に答える