"Динамическое" получение значений 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, время: 01:01. |