在我通过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”后(OK)一切都回到开头,告诉我在里面写一个数字。如果有可能,我希望2 + 3 + 4 = 9留在那里?感谢
答案 0 :(得分:4)
变化:
<button onclick="stisk()">OK</button>
为:
<input type="button" onclick="stisk()">OK</input>
像@Teemu所说,&lt;按钮&gt;将提交表格元素。
答案 1 :(得分:0)
另一种解决方案
<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();
...
并且在输入字段中使用回车提交表单时它将起作用。