如何清除预填充$ _POST值的表单元素

时间:2017-05-19 16:29:13

标签: javascript php jquery forms post

如果您运行并提交以下表单:

<!DOCTYPE html>
<html>
<body>
<form action="" method="POST">
  First name:<br>
  <input type="text" name="firstname" value="<?php if(isset($_POST['firstname'])){echo $_POST['firstname'];} ?>"
  <br>
  <input type="submit" value="Submit">
  <input type="button" onclick="this.form.reset()" value="Clear Form">
</form> 
</body>
</html>

为什么this.form.reset()在使用之前提交的值预先填充表单时不起作用? “清除表单”按钮仅在提交数据之前有效。我已经尝试了许多使用jQuery的类似方法,这些方法也只能在提交表单之前工作,而不是之后。

由于JavaScript在服务器端代码之后运行,我希望$_POST['firstname']的值可以用JavaScript替换(在这种情况下,是一个空字符串)。

1 个答案:

答案 0 :(得分:1)

正如@Taplar所建议的那样,reset将设置在页面加载时初始设置的值。不要混淆“重置”表单值Vs设置值为“”(空字符串)

试试这个:

<强> HTML:

<input type="text" id="fn" name="firstname" value="preloaded value" />
<input type="button" onclick="clear_form();" value="Clear Form">

<强> JAVASCRIPT:

function clear_form() {
    document.getElementById('fn').value = "";
}