[英]Page refreshes after javascript function
After I excecute my JS function over onClick button method. 在通过onClick按钮方法执行我的JS函数之后。 My site refreshes and everything that was writen with innerHTML is erased.
我的网站将刷新,用innerHTML编写的所有内容都将被删除。 I think i'm missing something.
我想我缺少了一些东西。 I will just put the whole JS function here.
我将把整个JS函数放在这里。 I probably don't understand something and that's what is causing it.
我可能不了解某些东西,这就是造成它的原因。
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: HTML:
Here is the browser view:
这是浏览器视图:
After i press "V redu" (OK) Everything goes back to the start, expacting me to write a number inside. 当我按“ V redu”(确定)后,一切又回到了开始,指示我在里面写一个数字。 I want the 2+3+4=9 to stay there if that is possible?
我希望2 + 3 + 4 = 9留在那里吗? Thanks
谢谢
Change: 更改:
<button onclick="stisk()">OK</button>
to: 至:
<input type="button" onclick="stisk()">OK</input>
Like @Teemu said, < button > will submit a form element. 就像@Teemu所说的那样,<button>将提交一个表单元素。
Another solution 另一种解决方案
<button onclick="stisk(event)">OK</button>
and in javascript 和在JavaScript
function stisk(e){
e.preventDefault();
...
This can be useful in other cases, like default behavior of <a href
element is to redirect page, so you can prevent default behavior with event.preventDefault()
这在其他情况下很有用,例如
<a href
元素的默认行为是重定向页面,因此您可以使用event.preventDefault()
防止默认行为。
even better solution - let your button submit form, but prevent default on form submit 更好的解决方案-让您的按钮提交表单,但阻止表单提交时的默认设置
<form onsubmit="stisk(e)">
...
<button type="submit">
and in javascript 和在JavaScript
function stisk(e){
e.preventDefault();
...
and it will work when submitting form with Enter in input field. 当在输入字段中输入Enter提交表单时,它将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.