2012-04-20 19 views
0

這應該很容易,但它讓我發瘋。我彈出一個包含textarea的jQuery Tools疊加表單,並且我希望textarea在出現時有焦點。表格本身工作正常,但我無法得到焦點堅持。下面的代碼運行時的形式呈現:如何讓textarea在jQuery工具疊加窗體中關注焦點?

$(document).ready(function() { 
    console.log('firing!');] 
    $('#edit-comment').css('color', '#ff0000'); 
    $('#edit-comment').focus(); 
}); 

當窗體出現時,我得到的console.log進入和我得到的文本區域的顏色變化,所以代碼肯定是運行並找到textarea的。但我沒有把焦點設置到textarea。

我發現這很奇怪。那裏有任何見解?

回答

0
$(function() { 
    console.log("firing!"); 
    document.getElementById("edit-comment").style.color = "#F00"; 
    document.getElementByID("edit-comment").focus(); 
}); 

但顏色會改變文字顏色。如果要更改背景,請使用.backgroundColor,如果要更改邊框,請使用.borderColor

+0

顏色改變的東西只是一個測試電話,我確保我正確地找到了textarea,並且我可以做到這一點 - 它不會是真實的。但無論如何,(a)document.getElementById如何調用與jQuery調用不同的任何東西,以及(b)我是否嘗試過它,它也不起作用。 ?? – 2012-04-20 19:10:41

+0

奇怪的是,我有一個web應用程序這樣做,它的工作原理,我只是用Chrome瀏覽器測試了一個快速html,並且工作,但IE8沒有。這實際上應該可行。 – 2012-04-20 19:25:46

+0

是的,這就是爲什麼它很奇怪:)。再IE 8 - 檢查http://api.jquery.com/focus/ - 如果表單元素在調用時不可見,IE顯然會中斷。我嘗試修改上面的代碼,使show()處理程序中的focus()調用掛在textarea上,但仍然沒有運氣。 – 2012-04-20 19:40:23

1

我懷疑代碼在DOM中創建#edit-comment之前運行。看起來你的代碼在document.ready上運行。

嘗試在加載覆蓋層的函數中運行$('#edit-comment').focus();代碼,並查看是否有幫助。

0

沒有回答太多踢球。時間過得很快;我找到了另一種做同樣事情的方法。我認爲Arno關於編輯評論創建時間的觀點是其中的一部分。無論如何,感謝您的幫助!