2013-07-17 60 views
0

我用一個文本和一個複選框寫了簡單的表單。接下來我寫了運行在提交表單上的函數。當我提交表單提交onsubmit函數文本和複選框值清除(文本只發送變量的名稱,但沒有值,複選框不發送),否則,沒有onsubmit函數一切都很好。爲什麼?有一個代碼:JS函數清除我的表單變量值

<!DOCTYPE html> 
<html> 
<head> 
<script> 

function addInput(task) { 
document.getElementById('adminForm').innerHTML += "<input type='hidden' value="+task+" name=task/>"; 
} 
</script> 
</head> 
<body> 

<form method="get" id="adminForm" onsubmit="addInput('Save')"> 
<input type="text" name="example"/> 
<input type="checkbox" name="box" value="1"/> 
<input type="submit" name="tas" value="Send"/> 
</form> 

</body> 
</html> 

回答

1

幾個問題

  1. 您需要返回false阻止提交 - 你只是看到你的網頁被重新加載 - 或者從服務器顯示的結果,看看它WA提交

  2. 你需要更新一個div,而不是形式:

<!DOCTYPE html> 
<html> 
<head> 
<script> 

function addInput(task) { 
    document.getElementById('adminForm').innerHTML += "<input type='hidden' value="+task+" name=task/>"; 
    window.console && console.log(task+" added"); 
    return false; // remove this if you want the form to be submitted 
} 
</script> 
</head> 
<body> 

<form method="get" onsubmit="addInput('Save')"> 
    <div id="adminForm"> 
    <input type="text" name="example"/> 
    <input type="checkbox" name="box" value="1"/> 
    <input type="submit" name="tas" value="Send"/> 
    </div> 
</form> 

</body> 
</html> 
+0

Thx很多,更新div而不是表單工作。我花了6個小時試圖解決這個問題; / – Sheryf