2017-05-19 88 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 = ""; 
}