使用加载时的Codeigner动态javascript->看法

Codeigniter dynamic javascript when using load->view

本文关键字:javascript- gt 看法 动态 Codeigner 加载      更新时间:2024-05-19

我有一个带有«newInput»按钮的表单,当我点击它时,它会在javascript中动态添加新的输入。

当我的表单出现错误时,我会用表单重新加载视图。这很正常,但。。因为我使用动态javascript添加新输入,所以在重新加载时,所有添加的输入都会被删除。。

有什么我能做的吗?

这是我观点的一个例子。tpl:

<input type="text"  placeholder="ex: cerise" 
                    onfocus="javascript:autoComplet('jigd1', '{site_url('recettes/getIngredient')}')" value="{set_value('igd[]')}" id="jigd1" name="igd[]"/>
                            {form_error('igd[]')}

我添加了js文件的部分代码

var cpt=1;
function addField(uriIngredient, uriLabel) {
try 
{
cpt=cpt+1;
var inputIgd = document.createElement('input'), 
button = document.createElement('input'),
div = document.createElement('div'),
inputIgd.setAttribute('type','text');
inputIgd.setAttribute('name','igd[]');
inputIgd.setAttribute('id','jigd'+cpt);

button.setAttribute('type','button');
button.setAttribute('onclick','javascript:supField("igd'+cpt+'")');
button.setAttribute('value','Supprimer');
div.setAttribute('id','igd'+cpt);
div.appendChild(inputIgd);
div.appendChild(button);
document.getElementById("listIgd").appendChild(div);
...

由于您动态地将新的输入/按钮附加到dom,而不是通过ajax调用/提交表单来保存其状态,因此在重新加载页面后无法保留输入/按钮。

最好使用localStorage来保存先前添加的input/buttom的信息。

PS:由于您还没有添加任何您尝试过的代码,所以很难用特定的代码来解释localStorage。

一旦追加,就将表单的状态添加到localStorage中,加载页面时,查找localStorage以检查以前添加的输入您可以将项目设置为localStorage:

window.localStorage.setItem('key','value')

你可以这样检索它们:

window.localStorage.getItem('key')