使用load->视图时的动态javascript

时间:2013-12-14 20:57:49

标签: javascript jquery html codeigniter local-storage

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

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

我能做点什么吗?

这是我的view.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);
...

经过一些研究,我试着看看有人说我的话,就是说 localStorage ,这非常好。 但是我只使用了一个输入的例子,因为我在我的html中写了它,但我不知道如何重新创建所有输入..特别是因为我使用javascript添加新的输入,我不知道我是否可以重新创建所有输入。

1 个答案:

答案 0 :(得分:0)

在提交之前检查表单,这样你就不必重新加载页面,例如使用jquery ......

$("#myformid").on("submit", function(){
    var goodtogo = true;
    // some code here to check the form, if there's an error --> goodtogo = false;
    if (!goodtogo) return false; // and some other code to display the errors
});

这样,如果出现错误,表单将不会提交,也不会重新加载。 如果您必须检查数据库中的某些内容(例如),例如检查用户名是否已存在,则必须使用ajax。