如果您运行并提交以下表单:
<!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替换(在这种情况下,是一个空字符串)。
答案 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 = "";
}