2013-11-15 120 views
0

我正在使用電子郵件模板編輯器,用戶將從預先存在的模板列表中進行選擇,並且可以根據需要更新模板。我在跨瀏覽器使用CKEditor插件時遇到了問題,所以我試圖創建自己的插件。當用戶選擇一個模板時,它將在模態窗口中打開。要改變圖像,我已經包含了輸入標籤,這些標籤在模式關閉時被移除。這工作得很好,但如果用戶想要回到編輯器,輸入按鈕不再存在。插入輸入如果不存在

我想添加模態窗口中的輸入按鈕,如果它不存在。我試圖檢查屬性的長度,但我無法返回非null值,無論它是否存在。我的代碼如下:

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

如果我第一次打開它的長度是一個,所以沒有添加任何預期。如果我刪除然後再次單擊該按鈕,則長度將顯示爲0,並按預期正確添加輸入。如果我然後刪除輸入並再次單擊該按鈕,儘管控件不存在,長度仍爲1。

任何想法?

+0

使用長度的方法.. –

+0

或嘗試使用'$ (「something」)。val()==「」' –

回答

0

試試這個:

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

,並確保你已經把它準備函數內部。

+0

在'if'條件中使用'!$(「#imageInput1T1」).length'。 '$(「#imageInput1T1」)'可能返回一個空數組,而'![]'不返回true。 –

0

試試這個:

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

問題是類屬性article_media對其他模式的一個類似的發現我的錯誤感謝您的幫助反正