2017-05-19 51 views
0

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

<!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

重置表单会将它重新设置为value =“”在标记中创建时的值。 – Taplar

+0

如果要清除所有输入,请使用此解决方案:(http://stackoverflow.com/questions/6364289/clear-form-fields-with-jquery) –

回答

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 = ""; 
}