记住动态添加的输入元素及其值
remembering dynamically added input elements and their values
我正在构建一个页面创建向导,我允许用户向页面添加最多3个图像。我目前使用的代码完成了任务,但它并没有像我希望的那样工作。在我的页面向导中,这是包含文件输入的html:
<div class="pictures">
<label>Add Pictures </label><span>(Maximum: 3)</span>
<span id="input_container"></span>
<a href="javascript:addPic()">add</a> |
<a href="javascript:rmvPic()">remove</a>
</div>
我的javascript看起来是这样的:
var picNum = 0;
function addPic() {
if (picNum < 3) { picNum++;
var input = document.createElement('input');
input.setAttribute('type', 'file');
input.setAttribute('name', 'picture_' + picNum);
input.setAttribute('id', 'picture_' + picNum);
var container = document.getElementById('input_container');
container.appendChild(input);
}
}
function rmvPic() {
if (picNum > 0) {
var container = document.getElementById('input_container');
container.removeChild(document.getElementById('picture_' + picNum));
picNum--;
}
}
当前的设置允许用户动态地向页面添加他们想要的图像数量,但在他们提交表单并返回编辑页面后,他们添加的所有元素现在都会从页面中删除。我希望当用户回来想要更改图像时,向导会记住他们添加的图片数量和值。
我不知道我说的是否有意义,所以如果你需要更多信息,我愿意提供。如果你需要的话,我正在与ruby on rails合作。
当您说"返回编辑页面"时,我假设您的意思是发生页面加载。如果是这种情况,那么您将丢失添加图像的提交页面的状态(javascript vars将重置)。如果您执行了提交,则服务器上应该存在您要查找的值。因此,当重新加载编辑页面时,您需要从服务器(ajax)请求值或在页面范围内呈现它们。
我不清楚你是如何在页面之间导航的,也不清楚你如何存储提交的值,所以我在这里做了一些假设。
简而言之,HTML是无状态的,因此您需要一种在页面之间存储值的方法。您可以在服务器上存储,也可以在本地存储(在cookie或本地缓存中)。
如果不能更清楚地了解你的应用程序的结构,我无法推荐一种方法。
相关文章:
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 访问代码生成的输入元素上的keyup事件
- 如何通过jQuery发送选定的元素和文本输入
- 使用 jQuery,当我在输入框外部单击时,如何更改输入元素的值
- 从IE中的不同元素调用时,文件输入控件未正确启动
- 使用jQuery切换来显示内容,但防止在用户单击输入元素时关闭
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 如何在dom元素中插入输入标记数据插件
- 根据输入文本按元素排序,AngularJS
- 更新最大滑块元素输入类型=文本
- 角度/动画引导元素(输入组)
- 如何创建表单元素输入框,标签使用javascript onclick
- 绑定到单击事件以查找子元素输入值
- 特定值元素输入未被读取
- 在JavaScript中将用户输入的元素输入到数组中
- JQuery隐藏元素输入问题遍历
- 如何找出表单是否没有任何元素(输入,选择)在jquery
- 使用表单元素(输入)初始化放大弹出菜单
- 如何获取所有子元素输入
- 基于子元素输入控制父元素:focus