插入输入(如果不存在)

时间:2013-11-15 11:22:52

标签: javascript jquery css

我正在使用电子邮件模板编辑器,用户将从预先存在的模板列表中进行选择,并且可以根据需要更新模板。我在浏览器中使用CKEditor插件时遇到了问题,因此我尝试创建自己的插件。当用户选择模板时,它将在模态窗口中打开。为了更改图像,我已经包含了输入标签,这些标签在模态结束时被删除。这种方法效果非常好,但如果用户想要返回编辑器,则输入按钮不再存在。

如果它不存在,我想在模态窗口中添加输入按钮。我已经尝试检查属性的长度,但无论是否存在,我都无法返回null以外的值。我的代码如下:

function template1InputButtons() {
    if ($("#imageInput1T1").length == 0) {
        $('<input id="imageInput1T1" type="file" name="newImage1T1" onchange="previewImage1T1(this)" />').insertBefore('.article_media');
    }
}

如果我在第一次打开它时将其打开,因此没有按预期添加任何内容。如果我删除然后再次单击该按钮,则长度显示为0,并按预期正确添加输入。如果我然后删除输入并再次单击该按钮,则尽管控制不存在,但长度会变为1。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

试试这个:

function template1InputButtons() {
    if (!$("#imageInput1T1")) {
        $('<input id="imageInput1T1" type="file" name="newImage1T1" onchange="previewImage1T1(this)" />').insertBefore('.article_media');
    }
}

并确保您已将其置于准备好的功能中。

答案 1 :(得分:0)

试试这个:

if ($("body").find("#imageInput1T1").length == 0) {
        $('<input id="imageInput1T1" type="file" name="newImage1T1" onchange="previewImage1T1(this)" />').insertBefore('.article_media');
    }

答案 2 :(得分:0)

问题是类别属性article_media在另一个模态上的类似发现我的错误感谢无论如何

相关问题