Javascript 表单中的默认值和用户输入

Javascript 表单中的默认值和用户输入,javascript,php,forms,Javascript,Php,Forms,当我编写我的第一个HTML和PHP表单时,有人告诉我,即使在发送表单之后,通过给出变量也能让用户的输入可见,这很好。我的第一张表格是这样的: <input type="text" name="name" value="<?php echo $name; ?>" /> 我最近开始使用JavaScript,我偶然发现了一段非常有用的代码,它可以将默认值写入表单中,当您单击它时,它会被清除。它看起来像这样,而且效果很好 <input id="name" name="n

当我编写我的第一个HTML和PHP表单时,有人告诉我,即使在发送表单之后,通过给出变量也能让用户的输入可见,这很好。我的第一张表格是这样的:

<input type="text" name="name" value="<?php echo $name; ?>" /> 
我最近开始使用JavaScript,我偶然发现了一段非常有用的代码,它可以将默认值写入表单中,当您单击它时,它会被清除。它看起来像这样,而且效果很好

<input id="name" name="name" onblur="if (this.value=='') this.value='Name'" onfocus="if (this.value=='Name') this.value='';" type="text" value="Name" />
我仍然对我的新状态不满意。如果您尝试使用默认值提交它,您会收到一条错误消息-很好。但是,你必须再次填写所有内容

我想把这个和我的第一次尝试结合起来,就是关于变量的尝试。用户应该看到一个默认值,当他点击表单时,默认值消失。在填补空白并单击submit之后,他们应该仍然能够看到自己写的内容


这可能吗?

您可以在html表单中使用满足您需求的html
占位符

<input id="name" name="name"  type="text" value="" placeholder="Name" />

希望它能帮助你,也不需要jQuery函数

如果您想为其他检查添加jQuery验证,那么您可以这样做,但在这方面不需要jQuery

所以你可以用这样的东西

<form action="">
  <input type="text" name="fname" placeholder="First name"><br>
  <input type="text" name="lname" placeholder="Last name"><br>
  <input type="submit" value="Submit">
</form> 




如果使用占位符属性,则可以省略输入上的JS键(1)。将占位符文本与实际值分离后,也可以放弃PHP(2)中的值检查。之后,只需将提交的表单值输出回表单(3)



查看输入的
占位符
属性;它基本上会自动执行该行为,不需要JavaScript。另外,可能值得花一些时间研究jQuery验证以强制/验证用户输入。提交后,您可以
echo
使用
$\u POST
变量。试试这个占位符属性工作起来非常简单,我希望有人早点告诉我!我还将看一看jQuery,但这需要相当长的时间。现在你可以在几分钟内解决我的问题,谢谢!
<input id="name" name="name"  type="text" value="" placeholder="Name" />
<form action="">
  <input type="text" name="fname" placeholder="First name"><br>
  <input type="text" name="lname" placeholder="Last name"><br>
  <input type="submit" value="Submit">
</form> 
<?php
$name = '';
if (isset($_POST['name'])) // (2)
{
  $name = $_POST['name'];
  if (strlen(trim($_POST['name'])) > 0)
  {
    $flag_name=TRUE;
  }
  else
  {
    echo "Please fill in your name";
    $flag_name=FALSE;
  }
?>
<form method="post">
  <!--                         (1)                                              (3)-->
  <input id="name" name="name" placeholder="Your name here!" type="text" value="<? echo $name; ?>" />
</form>