標準HTMLでは、フォームは、その入力を介してデータを収集するように設計された要素です。デフォルトの動作は、データが入力されてフォームが送信されると、ブラウザはそのフォームデータをすべてサーバーに戻し(POST要求)、レスポンスをリロードします。これは標準的な動作です。サブミット時に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;
}
のようなものが通常である(eは、すべてのJSのイベントハンドラは、取得した場合のオブジェクトである)虚偽またはe.preventDefaultを返す経由
です。個人的に私はデフォルトの振る舞いを変更しないようにしています。サーバーにデータを送信しておらず、純粋に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