"Динамическое" получение значений input
Доброго дня форумчане!
Бьюсь головой :blink: второй день из-за того что не могу получить значение из input'a формы, которая создается по событию клика. Т.е. имеется таблица со значениями, по клику на строке создается div с input, в который вводится значение и далее оно попадает в бд... Так вот не получается у меня его вытащить... Пример кода (извиняюсь за смешивание js/jquery и всевозможные костыли/велосипеды:) - function newDialog(dtitle, ddata) { var body = document.getElementsByTagName("body")[0]; var id = "dlgTest_"+Math.floor(Math.random(1,53)*1000); $("[id ^= dlg]").remove(); var dclose = document.createElement("div"); dclose.setAttribute("class", "dialogClose"); dclose.setAttribute("onclick", "delDiv('"+id+"');"); dclose.innerHTML = "X"; var dialog = document.createElement("div"); dialog.setAttribute("class", "dialogScript"); dialog.setAttribute("id", id); dialog.setAttribute("style", "display:none"); dialog.innerHTML = dtitle+"<br>"+ddata; dialog.appendChild(dclose); body.appendChild(dialog); return id; } var data = "<div align='center'><b>Запись №"+id+"</b><br><br><br><form id='updRec'>Введите значение:<br><br><input class='dbut' size='35' type='text' id='updText'></input><br><br><br><br><input class='dbut' type='button' value='ОБНОВИТЬ' onclick='alert("+$("#updText").val()+")'></input></form></div>"; var idDialog = newDialog("<hr size='8' color='#46c765'>", data); Вот этих два момента 1. <input class='dbut' size='35' type='text' id='updText'></input> 2. onclick='alert("+$("#updText").val()+")' Пробовал serialize формы, вложенные функции, просто добраться до элемента формы на js, но увы... Думаю что всё дело в DOM и в том что это динамически создаваемый "диалог", которого нет в основном дереве. Либо нужно как-то обновлять всё дерево, либо подойти к этому с другой стороны и свежей головой:-? Любая помощь мне в пользу, помогите пожалуйста дорогие "фронтовики":thanks: |
Цитата:
|
Цитата:
<input class='dbut' size='35' type='text' id='updText' /> |
В том то и дело, может как-то нужно обновить DOM, чтобы вписать этот элемент в него? Думал при открытии(инициализации) диалога это сделать, типо
.live("click", function(){ var idDialog = newDialog("<hr size='8' color='#46c765'>", data); return idDialog; }); но что-то не могу пазл сложить... |
Сделал!!!!:write: Незнаю, честно, что послужило причиной, но мне кажется что убрав закрывающийся тег input, все получилось, либо обращение к элементу в alert...
var data = "<div align='center'><b>Запись №"+id+"</b><br><br><br><form id='updRec'>Введите значение:<br><br><input class='dbut' size='35' type='text' id='updText' /><br><br><br><br></form></div>"; var idDialog = newDialog("<hr size='8' color='#46c765'>", data, "alert($(\"#updText\").val())"); В любом случае - помогло! Спасибо тебе ksa, за помощь + |
<div id="target"></div> <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script> function newDialog(dtitle, ddata) { var body = document.getElementById("target"); var id = "dlgTest_"+Math.floor(Math.random(1,53)*1000); $("[id ^= dlg]").remove(); var dclose = document.createElement("div"); dclose.setAttribute("class", "dialogClose"); dclose.setAttribute("onclick", "delDiv('"+id+"');"); dclose.innerHTML = "X"; var dialog = document.createElement("div"); dialog.setAttribute("class", "dialogScript"); dialog.setAttribute("id", id); //dialog.setAttribute("style", "display:none"); dialog.innerHTML = dtitle+"<br>"+ddata; dialog.appendChild(dclose); body.appendChild(dialog); return id; } var data = "<div align='center'><b>Запись №</b><br><br><br><form id='updRec'>Введите значение:<br><br><input class='dbut' size='35' type='text' id='updText'></input><br><br><br><br><input class='dbut' type='button' value='ОБНОВИТЬ' onclick='alert($(\"#updText\").val())'></input></form></div>"; var idDialog = newDialog("<hr size='8' color='#46c765'>", data); </script> P.S. опоздал на пару минут :) Цитата:
|
Часовой пояс GMT +3, время: 18:36. |