7

我是 javascript 的新手,在每件简单的事情上我都会遇到一些问题,但这对我来说似乎无法解决。我用谷歌搜索并没有类似的东西。

在我将数据输入文本框并将其存储到变量中后,我在段落中打印出变量。问题是我打印出来的输出在不到一秒的时间内消失了。代码似乎很正常,可能是什么?当你不放 getch(); 时,它看起来像 c 提前致谢。

<form>Unesite broj koji ce se ispisat kasnije.<br>
<input type="text" id="userInput">
<input type="submit" name="unos" value="Unesi i ispisi" onclick="unesi()"><br><br>

</form> 
    <br><br>
<p>Unjeli ste <b id="ispis"></b></p>
<script>
function unesi(){
var userInput = document.getElementById('userInput').value;
document.getElementById('ispis').innerHTML = userInput;
}   

</script>
4

3 回答 3

9

<form>标签没有指定action属性,因此当您单击提交按钮时,浏览器会将表单提交到当前 URL - 这看起来很像页面正在刷新。

如果你想unesi在用户点击提交时运行该函数并阻止 HTML 表单提交,你需要稍微改变一下:

<input type="submit" name="unos" value="Unesi i ispisi"
      onclick="unesi(); return false;">

return false阻止表单提交自身。

于 2012-12-07T14:37:07.337 回答
3

因为表单提交并刷新页面。取消表单请求。

<input type="submit" name="unos" value="Unesi i ispisi" onclick="return unesi()">

和功能

function unesi(){
    var userInput = document.getElementById('userInput').value;
    document.getElementById('ispis').innerHTML = userInput;
    return false;
}   

更好的选择是在表单级别进行

<form action="#" method="get" onsubmit="return unesi()">
于 2012-12-07T14:36:41.247 回答
2

而不是取消表单提交,另一种选择是更改

<input type="submit" name="unos" value="Unesi i ispisi" onclick="unesi()">

<input type="button" name="unos" value="Unesi i ispisi" onclick="unesi()">

这将使表单在按下按钮时根本不会尝试提交。

于 2012-12-07T14:40:25.610 回答