为什么我的javascript混淆了我的php

为什么我的javascript混淆了我的php,php,Php,我正在尝试在HMTL联系人表单中使用javascript,该表单在字段中显示文本,直到鼠标单击其中一个字段为止。然而,我的PHP似乎仍然认为字段中有文本,而它只是javascript而不是物理HTML。有人能帮我解决这个问题吗 Javascript/HTML表单 <form method="post" action="sendEmail.php"> <input type="text" name="name" id="name" onfocus="if (this.value

我正在尝试在HMTL联系人表单中使用javascript,该表单在字段中显示文本,直到鼠标单击其中一个字段为止。然而,我的PHP似乎仍然认为字段中有文本,而它只是javascript而不是物理HTML。有人能帮我解决这个问题吗

Javascript/HTML表单

<form method="post" action="sendEmail.php">

<input type="text" name="name" id="name" onfocus="if (this.value == 'Your Name')
this.value = '';" onblur="if (this.value == '') this.value = 'Your Name';" maxlength="30"  
value="Your Name" />

<input type="text" name="email" id="email" onfocus="if (this.value == 'Your Email')   
this.value = '';" onblur="if (this.value == '') this.value = 'Your Email';" maxlength="30" 
value="Your Email" />
<br /><br />


<textarea name="message" id="comments" value="Enter Your Message Here..." cols="60" rows="5" 
onfocus="if (this.value == 'Enter Your Message Here...') this.value = '';" 
onblur="if (this.value == '') this.value = 'Enter Your Message Here...';" >Enter Your Message Here...</textarea>    
</form> 



在此处输入您的消息。。。

PHP

if (strlen($name) < 2) {
        $error['name'] = "Please enter your name";  
    }

    if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
        $error['email'] = "Please enter a valid email address"; 
    }

    if (strlen($comments) < 5) {
        $error['comments'] = "Messages must be longer then 5 characters";
    }
if(strlen($name)<2){
$error['name']=“请输入您的姓名”;
}
如果(!preg\u match('/^[a-z0-9&\'-\+]+@[a-z0-9\-]+.([a-z0-9\-]+.*+[a-z]{2}/is',$email)){
$error['email']=“请输入有效的电子邮件地址”;
}
如果(strlen($comments)<5){
$error['comments']=“邮件长度必须超过5个字符”;
}
然而,我的PHP似乎仍然认为字段中有文本,而它只是javascript而不是物理HTML


JavaScript仍然影响“物理HTML”。如果您使用JavaScript设置值,PHP将在提交时看到它。您可能想看看HTML5的
占位符属性(以及在旧浏览器上模拟其功能的JavaScript库)。

您拥有的JavaScript添加或删除数据,但它会更改
值。
是提交表单时浏览器通过网络发送的内容。您可以:

  • 向表单中添加提交处理程序,以清除其中包含默认值的任何字段
  • 使用CSS+JavaScript将标签移动到输入上,并在用户聚焦/模糊字段时隐藏/显示标签(完全跳过新的占位符属性,仅使用JavaScript进行模拟)
  • 如@ceejayoz所建议的,完全删除JavaScript并使用新的
    占位符
    属性(并使用JavaScript垫片添加对不支持该属性的旧浏览器的支持)。

    HTML中有值,因此即使没有JavaScript,也会发送这些值。当值为默认值时,不允许提交表单。对于这个在documentready上运行脚本,它将每个输入的值记录为原始值,并附加焦点和模糊处理程序。将提交处理程序附加到表单,表单将检查提交的值是否为空或原始值。

    +1昨天有人这样做了。好的一面是,你们都得到了8个代表:)咯咯地笑着@Herbert,说得很好。不过,我认为他们有充分的理由投反对票。。。这意味着我们都缺少一些基本的东西,无论是关于web开发,还是关于网站应该如何工作;-)对一定是这样。有了11k代表,你显然不知道自己在说什么-p在我工作的一个帖子上又出现了。也许他们的显示器颠倒了。:-)提示:您可能有兴趣了解和