在標準HTML中,表單是設計用於通過其包含的輸入收集數據的元素。默認行爲是數據輸入和表單提交後,瀏覽器將所有表單數據發送回服務器(POST請求)並重新加載響應。這是標準行爲。如果你想在提交時運行JS函數,並且在刷新頁面時停止,則需要取消默認行爲。這通常是通過返回false或e.preventDefault(e是每一個JS事件處理程序獲取事件對象)
因此,像
<form id="calculator" onSubmit="return multiply()">
<input type="number" id="first">
*
<input type="number" id="second">
<input type="submit"> = <span id="answer"></span>
</form>
function multiply(e) {
var x = document.getElementById("first").value;
var y = document.getElementById("second").value;
var z = x * y;
document.getElementById("answer").innerHTML = z;
e.preventDefault();
return false;
}
通常是什麼做過。我個人儘量不改變默認行爲。如果你沒有發送數據到服務器,並且純粹想要做一些JS功能,那麼你真的不需要一個表單。喜歡的東西
HTML:
<input type="number" id="first">
*
<input type="number" id="second">
<button type="button" onclick="multiply()">=</button> =
<span id="answer"></span>
的JavaScript:
function multiply() {
var x = document.getElementById("first").value;
var y = document.getElementById("second").value;
var z = x * y;
document.getElementById("answer").innerHTML = z;
}
讓更多的語義意義的我。更好的是,不要把事件處理程序符合你的HTML
<input type="number" id="first">
*
<input type="number" id="second">
<button id="btnMultiply" type="button">=</button> =
<span id="answer"></span>
的JavaScript:
document.getElementyId('btnMultiply').addEventListener('click',multiply);
function multiply() {
var x = document.getElementById("first").value;
var y = document.getElementById("second").value;
var z = x * y;
document.getElementById("answer").innerHTML = z;
}
一些回報形式? – uzaif