当包含文本字段、文本区域等时,Jquery 对话框会多次打开

Posted

技术标签:

【中文标题】当包含文本字段、文本区域等时,Jquery 对话框会多次打开【英文标题】:Jquery Dialog opening multiple times when contains textfield, textareas etc 【发布时间】:2017-09-08 12:51:07 【问题描述】:

由于某种原因,当我打开一个包含输入类型的对话框时,它会打开多个对话框。

这是我的代码:

    var addTagsDialog = $("<p>This is just a test tag</p> <br /><input type='text' />");

    addTagsDialog.dialog(
      buttons: 
        "Update": function () 
          console.log('Update Func Run');
        
      ,
      Cancel  : function () 
        addTagsDialog.dialog('destroy').remove();
      
    );

这是一个小提琴:https://jsfiddle.net/jrrxxbdg/

如果我拿出来:

  <br /><input type='text' />

然后它只打开一个对话框模式。

我正在使用这些版本:

jQuery 1.9.1 jquery-ui-1.9.2

谁能明白为什么会这样?

我在另一个问题上读到,这可能是因为我在使用模态后并没有破坏它们,但是每次我使用我添加的模态时

dialog('destroy').remove();

这并没有解释它是如何在 JSFiddle 中复制的。

有什么想法吗?

【问题讨论】:

【参考方案1】:

您需要将所有内容包装到 DIV 中。当您以这种方式创建元素时,您将创建一个包含 4 个独立元素(&lt;p&gt;textElement&lt;br&gt;&lt;input&gt;)的 jQuery 集合。然后它为每个人创建一个对话框。

用途:

var addTagsDialog("<div><p>This is just a test tag</p> <br /><input type='text' /></div>");

【讨论】:

谢谢。我不知道。

以上是关于当包含文本字段、文本区域等时,Jquery 对话框会多次打开的主要内容,如果未能解决你的问题,请参考以下文章

jQuery在文本区域中设置光标位置

jquery文本区域长度计数?

如何从输入字段搜索文本到文本区域,以及如何使用 Jquery 标记匹配结果?

更改文本区域 jquery 内的 html 标记之间的文本

虚拟键盘隐藏字段/文本区域/内容可编辑(隐藏在键盘下方)

使用 jQuery 滚动到一个元素