2015-05-28 4 views
0

У меня есть div с тегами HTML и элементами управления формами, например check boxes, text and drop lists. Я хочу опубликовать весь контент вместе с состояниями элементов управления формами (т. Е. Захватить выбор пользователя), чтобы сохранить его в базе данных, а затем повторно отобразить точный HTML.Отправить содержимое div содержит состояния управления формой

Как я могу это сделать? Я использовал

$("#div").clone()

Но, похоже, контроль состояния не сохраняются. Примечание: я не хочу публиковать внутреннюю форму, а затем повторно отображать формы, потому что HTML является динамическим (это шаблон HTML)

ответ

0

Если я правильно понимаю ваш вопрос, вам нужно сохранить состояния управления в HTML элементы первого (к наценке), а затем отправить свойство innerHTML Div в ...

Смотрите эту скрипку - http://jsfiddle.net/esy1cc8z/

Прежде всего вам нужно перебрать все элементы формы в указанном DIV:

var ctrls = parent.querySelectorAll("input, select, textarea"); 

for(var i = 0; i < ctrls.length; i++){ 
    var el = ctrls.item(i); 
    //... 

А затем сохранить состояние различных элементов формы в элементы DOM в качестве атрибутов (= значений по умолчанию в HTML):

var type = el.getAttribute("type"); 
//For checkbox 

//Checkbox 
if(type == "checkbox"){ 

    if(el.checked) 
     el.setAttribute("checked", "checked"); 
    else 
     el.removeAttribute("checked"); 

//Other textual/numeric input types 
} else { 

    el.setAttribute("value", el.value);     

} 

Конечно, если вам нужен полезный алгоритм, то вам необходимо написать условия для всех типов контроля формы, это просто пример ...

Примечание: это чистое решение JS, с помощью JQuery может быть проще, код ...

+0

Я обновил скрипку, чтобы быть более образцовой и клоны целые управления DIV в новый DIV с контрольные состояния - http://jsfiddle.net/esy1cc8z/1/ –

+0

Ваше решение работает для меня, очень ценю, Jiri, вы мужчина. –