改变现有的验证以适应onfocus?

时间:2011-11-11 13:26:30

标签: php validation onfocus

熟悉以此示例形式创建文本字段: -

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 !!");  
        }

以上脚本有效....看到这张图片! Alternate form layout

我的问题是???

使用onfocus文本字段创建表单时,如下例所示: -

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

....上述验证不再有效,因为文本字段中有已有条目

上述验证是否可以用于新的onfocus情况?

1 个答案:

答案 0 :(得分:0)

最简单的方法是更改​​当前脚本的if语句,如下所示:

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

如果您对当前的脚本感到满意,那么应该完成工作,但是在您的验证方面,您可以做得更好,因为它看起来相当容易出错并且现在看起来不那么用户友好 - 然后它再次是一个示例脚本,所以也许这是故意的。

无论如何,就像我说的那样,这对你当前的剧本来说是最简单的方法,尽管不是最好的方式。