У меня есть форма с кнопкой "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[]')}
Я добавляю код partiel моего 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 для добавления новых входных данных, я не знаю, если я может воссоздать все входы.
проверьте форму перед отправкой, таким образом вам не придется перезагружать страницу, например, используя jquery...
$("#myformid").on("submit", function(){
var goodtogo = true;
// some code here to check the form, if there an error --> goodtogo = false;
if (!goodtogo) return false; // and some other code to display the errors
});
Таким образом, если есть ошибка, форма не будет отправляться и не перезагружается. Если вам нужно проверить что-то в базе данных (например), например, проверить, существует ли имя пользователя, вам придется использовать ajax.