【发布时间】:2016-01-23 09:23:30
【问题描述】:
我在将值存储在能够打开对话框的动态创建按钮中遇到问题。
所有按钮的对话框都相同,所以我有这样的定义:
$('<div id="dialog-form" title="Change coordinates">' +
'<p class="validateTips">Both fields are required.</p>' +
'<form>' +
'<fieldset>' +
'<label for="lon">Longitude (decimal)</label>' +
'<input type="text" name="lon" id="lon" value="" class="text ui-widget-content ui-corner-all">' +
'<label for="lat">Latitude (decimal)</label>' +
'<input type="text" name="lat" id="lat" value="" class="text ui-widget-content ui-corner-all">' +
'<input type="submit" tabindex="-1" style="position:absolute; top:-1000px">' +
'</fieldset>' +
'</form>' +
'</div>').appendTo(document.body);
然后我用特殊的“创建”按钮生成对话框按钮:
$( "#create" ).button().on( "click", function()
{
var btn1 = document.createElement("BUTTON");
btn1.id = "change_coord";
var t1 = document.createTextNode("Change coordinates");
btn1.appendChild(t1);
document.body.appendChild(btn1);
generator++;
});
然后我有一个对话框声明和函数来处理我的对话框输入,之后,我尝试打印输入和我的 id(来自生成器的值)。输入很酷,但 id 不起作用。
例如,我生成了 3 个按钮,例如 btn1:1、btn2:2、btn3:3 (button:id),但所有按钮的 id 输出都是 3。
我的应用程序将动态创建对象,我想通过此对话框修改这些对象。 “ID”值将用作指向我的数据库的“指针”。所以当我点击第一个创建的按钮时,不管我创建了多少个按钮,它仍然必须有一个“ID”值 == 1
FIDDLE 来模拟我的情况。
感谢大家的时间和意见。
【问题讨论】:
-
似乎过于复杂,但不确定您究竟想做什么来创建多个相同的对话框。为什么不使用一个对话框?
-
@charlietfl 因为我的应用程序将动态创建对象,我想通过此对话框修改这些对象。 “ID”值将用作指向我的数据库的“指针”。所以当我点击第一个创建的按钮时,不管我创建了多少个按钮,它仍然必须有一个“ID”值 == 1
标签: javascript jquery html jquery-ui-dialog