динамический JavaScript при использовании load-> view

0

У меня есть форма с кнопкой "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 для добавления новых входных данных, я не знаю, если я может воссоздать все входы.

  • 0
    Вам следует рассмотреть возможность отправки формы через ajax и обработки ответа (отображения сообщений об ошибках и т. Д.) С использованием javascript. Таким образом, вы можете полностью избежать перезагрузки страницы.
  • 0
    Нет другого решения?
Показать ещё 3 комментария
Теги:
codeigniter
local-storage

1 ответ

0

проверьте форму перед отправкой, таким образом вам не придется перезагружать страницу, например, используя 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.

  • 0
    Я уже проверяю свою ошибку с проверкой формы CodeIgniter .. Я действительно не могу обойтись без нее ..
  • 0
    ну, тогда я предлагаю вам использовать AJAX, он действительно мощный, и как только вы привыкнете к нему, он вам понравится

Ещё вопросы

Сообщество Overcoder
Наверх
Меню