JavaScript分配了调用函数后移除的数组值
JavaScript assigned array values removed after invoking function
使用JavaScript显示输入到下面列出的textarea元素中的内容列表。提交的值只显示一瞬间,但在调用函数后立即从数组中删除。有人能解释一下原因吗?
HTML<!DOCTYPE html>
<html>
<head>
<title>title</title>
<link rel='stylesheet' type='text/css' href='template.css'>
</head>
<body>
<header id='title'>
<h1></h1>
<h2></h2>
</header>
<div id='main_container'>
<div id='chat'>
<form id='messaging'>
<textarea id='current_msg'></textarea>
<input type='submit' value='send'>
</form>
<ul id='msg_list'>
</ul>
</div>
</div>
<script type='text/javascript' src='client.js'></script>
</body>
</html>
JavaScript var msgList=[];
var form=document.getElementById('messaging');
var currentMsg=document.getElementById('current_msg');
var chat=document.getElementById('chat');
var ul=document.getElementById('msg_list');
function addText() {
if(currentMsg.value.length>0) {
if(msgList.length>=25) msgList.pop();
msgList.unshift(currentMsg.value);
currentMsg.value='';
console.log(msgList.length);
}
var concat='';
for(var index=0; index<msgList.length; index++) {
concat+='<li>'+msgList[index]+'</li>';
}
ul.innerHTML=concat;
}
if(document.addEventListener) {
form.addEventListener('submit', function() {
addText();
},
false);
}else {
form.attachEvent('onsubmit', function() {
addText();
},
false);
}
您需要了解使用form:
的效果1)用户输入一些值
2)一旦提交表单被提交,因为你没有指定动作,它将默认重新加载当前网页,这意味着所有的输入将被清除3) html页面从头开始解析,JS代码运行,但它只会访问输入的新值,此时为空
要做到这一点,你需要删除表单标签相关文章:
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- 将数组的拼接分配给自身时,Javascript控制台打印不起作用
- 在将csv文件中的数据分配给数组变量时增强了d3代码
- 当数组在angularjs中没有可比较的值时,如何分配默认值
- 使用mysql为JSON php数组分配多个列值
- 处理对象数组并将它们以 4 个为一组进行分配
- 可以't分配给一个对象数组javascript
- Javascript原型通用Enquries和通过数组索引分配Id
- 通过程序将对象分配给数组
- 将随机整数分配给数组中的项,summa应该是一个固定的数字
- JavaScript's数组过滤器函数在没有分配函数的情况下使用-这里发生了什么
- 选择多个复选框并将值分配给数组 - HTML/Javascript
- 如何在 ng-repeat 中按键分配对象数组
- JS循环图像文件夹,预加载它们并分配给数组
- Java 脚本数组分配错误
- 如何使用数组分配下拉选项值
- Javascript-数组分配
- 数组分配Javascript
- 在jquery中为多维数组分配索引和值
- Jquery -循环跨度,从数组分配宽度