Javascript:如何为列表添加价值并使其即时更新
Javascript: How to add value to a list and make it instant update?
我正在尝试创建的函数遇到了这个问题。我希望脚本获取输入字段的值,在逗号上拆分并放入一个数组,该数组将立即显示为复选框列表。
代码如下所示
var names=new Array("Johnny","Brat","Anna");
function makelist(namelist){
var rest = namelist.split(",");
names.push.apply(names, rest);
}
然后我希望列表立即以我创建的表单显示
<form method="post">
<input type="text" name="task" value="buy beer" onClick="this.value=''"/><br/>
<input type="text" name="names" onBlur="makelist(this.value)" value="add names seperate by comma" onClick="this.value=''"/><br/>
<script>
var i;
for (i = 0; i < names.length; ++i) {
document.write("<input type='checkbox' name='navn" + i + "'/>" + names[i] + "<br/>");
}
</script>
<input type="submit" name="submit" value="roll"/>
</form>
它似乎将名称添加到 blur 的数组中,但我无法让它在更新数组时立即显示。
提前致谢
您的主要问题是,for
循环在首先加载时只执行一次。当您想在之后更新 DOM 时,您需要一些其他方法。
例如,下面创建一个包含所有新元素的字符串。然后使用 insertAdjacentHTML()
将其插入到包装器<div>
中。
.HTML
<form method="post">
<input type="text" name="task" value="buy beer" onClick="this.value=''"/><br/>
<input type="text" name="names" onBlur="makelist(this.value)" value="add names seperate by comma" onClick="this.value=''"/><br/>
<div id="checkboxes" />
<input type="submit" name="submit" value="roll"/>
</form>
.JS
var names=new Array("Johnny","Brat","Anna");
function makelist(namelist){
// insert to array
var rest = namelist.split(",");
names.push.apply(names, rest);
// insert to dom
var newEls = '';
for( var i=0; i<rest.length; i++) {
newEls += "<input type='checkbox' name='navn" + (names.length+i) + "'/>" + rest[i] + "<br/>";
}
document.getElementById( 'checkboxes' ).insertAdjacentHTML( 'beforeend', newEls );
}
相关文章:
- 添加文字和评论功能更新Div
- 通过jQuery添加ng样式属性,angular不更新
- 更新数据,而不是用javascript和jquery将其添加到我的表中
- JSON:loop Invoice Items:如果InvoiceNo未退出则添加,如果退出则更新值,示例包括在内
- 如何使用jQuery来添加分段的表单字段,并在添加不同值时进行更新
- 如何在猫鼬中更新文档后添加一些操作
- 如何在jQuery中的单个保存按钮上更新数据和添加数据
- 通过Couchdb中的更新处理程序添加id和author字段
- 如何在使用setInterval()更新的值中添加逗号
- 如何更新浏览器'使用Ajax将html添加到页面后的缓存
- 向HTML页面添加按钮,更新表格信息
- 如何正确添加到使用requestAnimationFrame不断更新的变量中
- sails.js更新或添加新行
- 如果源 json 已更新(添加或删除项目),则动态更新 D3 旭日
- 在 ajax 调用后更新/添加值到多个 select2 字段
- 如何在JavaScript中更新/添加数组的元素
- 更新/添加数据到谷歌电子表格数据库
- 在json对象中搜索元素以更新/添加该对象中的一些数据
- 基于另一个字符串更新/添加字符串值
- 仅在第二次单击时更新添加的javascript元素