如果您运行并提交以下表单:
<!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(在本例中为空字符串)。
最佳答案
正如 @Taplar 所建议的,重置将设置页面加载时最初设置的值。不要与“重置”表单值与将值设置为“”(空白字符串)相混淆
试试这个:
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 = "";
}
关于javascript - 如何清除预先填充 $_POST 值的表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44074855/