2016-12-05 46 views
-4

我有一個php頁面'search.php'。頁面中的一種表單。我有一個提交和一個重置按鈕。重置按鈕在表單提交之前工作,但在提交後不起作用。表單提交後,頁面被重定向到同一頁面(search.php),以查看包含相同表單的結果。有沒有人有這個問題的線索?重置按鈕在表單提交後不工作

<form action="http://localhost:8888/search/validate_search" name="search" id="search" method="post" accept-charset="utf-8"> 
    <p> 
     <label for="name">Name</label> 
     <input type="text" name="name" id="name" value="" required="required"> 
    </p> 
    <p> 
     <label for="country">Country</label> 

     <select name="country[]" id="country"> 
      <option value="">Select</option> 
      <option value="Afghanistan" >Afghanistan</option><option 

value="Albania" >Albania</option><option value="Algeria" >Algeria</option><option value="American Samoa" >American Samoa</option><option value="Andorra" >Andorra</option><option value="Angola" >Angola</option><option value="Anguilla" >Anguilla</option>   </select> 

    </p> 
    <p id="nofloat"> 
     <input type="submit" name="searchButton" value="Search" id="searchButton" /> 
     <input type="reset" name="reset" value="Reset" id="reset123"/> 
    </p> 
    </form> 
+4

展我們的代碼請。 –

回答

3

type='reset'的行爲不清除表單元素,但是當網頁加載他們返回初始/默認值。在提交表單之後,如果您將提交的值傳遞迴表單以預先填充表單(設置爲初始值),那麼您的重置按鈕只會將字段重置爲傳遞的值,而不是一個「乾淨」的狀態。要真正清除表單,您需要使用Javascript。

下面是會在你的問題中給出的HTML工作的例子...

<script> 
function customReset() 
{ 
    document.getElementById("name").value = ""; 
    document.getElementById("country").value = ""; 
} 
</script> 

只要改變你的復位按鈕,這...

<input type="button" name="reset" value="Reset" id="reset123" onclick="customReset();"/> 

Live Example

+0

我使用了javascript .reset()函數,但它返回一個錯誤。 .reset()不是函數錯誤。 –

+0

@ManikShakya這是因爲你有一個名爲「重置」的元素。這將覆蓋原生Javascript'reset()'函數。但是你不想使用這個函數,因爲它和'type ='submit''輸入域一樣。您需要編寫代碼將字段明確設置爲空值。查看更新。 –

+0

Thanks @Patrick Q –