2

我声明了一个按钮:

<button id="create" type="button">add div</button>

并且我想在每次使用 jQuery UI 对话框单击按钮时向文档正文添加一个新的 div 元素,如下所示:

var form = $("<div>", {id:"form"});

    form.append(
        $("<input>")
            .attr({
                "type" : "text",
                "id" : "user-input"
            })
    )
    .dialog({
        width: 600,
        buttons: {
            "Ok": function() {
                var new_div = $("<div>").html($("#user-input").val()).addClass("destiny_div");
                new_div.appendTo($("body"));
                $(this).dialog("close");
            }}
    });

我第一次单击该按钮时它工作正常,但第二次,我写入输入文本框中的文本没有更新为新值,而是采用第一个放置的值。

例如,如果我第一次输入“hello”并单击“ok”按钮,则会在正文中添加一个新的 div,其中包含文本“hello”,但是当我第二次输入时,现在输入“goodbye”,将添加一个新的 div,但其中包含文本“hello”,而不是“goodbye”。

这是我的代码:http: //jsfiddle.net/vWQ9T/

关于它为什么会这样工作的任何想法?谢谢

4

1 回答 1

5

每次插入 div 时都会附加您的对话框。因此,您第二次单击该按钮时,它仍然会从第#user-input一个对话框中取出第一个。因此,您必须在使用 close-Parameter 关闭对话框后删除表单:

close: function () {
    form.remove()
}

看看你的更新 jsfiddle:http: //jsfiddle.net/vWQ9T/1/

于 2012-06-13T14:58:39.827 回答