我有一个带有“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添加新的输入,我不知道我是否可以重新创建所有输入。
答案 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。