[英]Page refreshes after javascript function
在通過onClick按鈕方法執行我的JS函數之后。 我的網站將刷新,用innerHTML編寫的所有內容都將被刪除。 我想我缺少了一些東西。 我將把整個JS函數放在這里。 我可能不了解某些東西,這就是造成它的原因。
function stisk() {
var stevilo = prompt("Vnesi iskano stevilo");
var seznam = document.getElementById("vnos").value;
var pattern = new RegExp("^[0-9](,\s*[0-9])+$");
var vsota = 0;
var seznam = seznam.split(',');
var dolzina = seznam.length;
var pravilnost = pattern.test(seznam);
if (pravilnost == true) {
for (i = 0; i < dolzina; i++) {
vsota = vsota + parseInt(seznam[i]);
}
for (i = 0; i < dolzina - 1; i++) {
var star = document.getElementById("stevila").innerHTML;
if (isNaN(seznam[i]) == false) {
var starejsi = document.getElementById("stevila").innerHTML = star + parseInt(seznam[i]) + "+";
} else {
document.getElementById("stevila").innerHTML = "Vnos ni pravilen";
}
}
document.getElementById("stevila").innerHTML = starejsi + seznam[dolzina - 1] + "=" + vsota;
var c = 0;
for (i = 0; i < seznam.length; i++) {
if (stevilo == seznam[i]) {
c++;
}
}
if (c == 0) {
alert("stevila ni na seznamu");
} else {
alert("Stevilo je na seznamu");
}
} else {
document.getElementById("stevila").innerHTML = "Napacen vnos stevil";
}
}
HTML: 這是瀏覽器視圖:
當我按“ V redu”(確定)后,一切又回到了開始,指示我在里面寫一個數字。 我希望2 + 3 + 4 = 9留在那里嗎? 謝謝
更改:
<button onclick="stisk()">OK</button>
至:
<input type="button" onclick="stisk()">OK</input>
就像@Teemu所說的那樣,<button>將提交一個表單元素。
另一種解決方案
<button onclick="stisk(event)">OK</button>
和在JavaScript
function stisk(e){
e.preventDefault();
...
這在其他情況下很有用,例如<a href
元素的默認行為是重定向頁面,因此您可以使用event.preventDefault()
防止默認行為。
更好的解決方案-讓您的按鈕提交表單,但阻止表單提交時的默認設置
<form onsubmit="stisk(e)">
...
<button type="submit">
和在JavaScript
function stisk(e){
e.preventDefault();
...
當在輸入字段中輸入Enter提交表單時,它將起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.