1 回答

TA貢獻1878條經驗 獲得超4個贊
<form method="post" action="somephpfile.php" id="convert">
<input type="number" name="distance" id="distance" placeholder="distance">
<input type="submit" name="convertdist" value="Convert Distance">
</form>
當您單擊提交按鈕時,該表單將被提交。制作如下表格。
<form id="convert"> <!-- Taken out the attributes method and action -->
<input type="number" name="distance" id="distance" placeholder="distance">
<input type="button" name="convertdist" value="Convert Distance" onclick="convert()"> <!-- Changed the button type submit->button -->
</form>
對于 JavaScript,您必須將 JS 邏輯封裝在一個函數中,并onclick在提交按鈕期間調用它,例如:
<script>
function convert(){
var miles = parseInt(document.getElementById("distance").value);
var kilometers = (miles * 1.609344);
var answer = document.createElement("P");
answer.innerHTML = `"${miles} miles converts to ${kilometers} kilometers"`;
document.getElementById("answer").appendChild(answer);
}
</script>
你做錯的事情是:
轉換+附加答案應該是可調用的,這意味著它應該是一個函數。
每當單擊按鈕時都應調用轉換函數。因此,它應該綁定到
onclick
轉換按鈕的事件。無論如何,任何帶有按鈕類型的 HTML 表單
submit
都將提交到屬性指定的目標,除非您在 JS 中阻止它。你做到了,但不是在應該做的地方。action
event.preventDefault()
您的代碼中的以下內容從您放置的位置沒有意義。
document.getElementsByName("convertdist").addEventListener("click", function(event){
event.preventDefault();
document.getElementById("answer").appendChild();
});
將工作版本放在這個 fiddle中。找時間退房。
- 1 回答
- 0 關注
- 100 瀏覽
添加回答
舉報