2010-01-04 37 views
1

(document.getElementById('textarea').length> 0)不起作用。有沒有人知道除此之外的其他事情?如何在javascript中查找/檢測頁面中的任何textarea

請問

這裏是我以前的問題,這是沒有答案的情況。我有Rich Text Editor(Openwysiwyg),當我進入放置textarea的那個特定頁面時,它被加載到textarea中。該函數使用textarea id來標識textarea,以用富文本編輯器(RTE)替換它。現在,調用此函數的腳本位於頁面的標題部分。我選擇發送電子郵件的下拉選項,因此我的textarea用於顯示電子郵件。通過爲RTE添加此腳本,我的用於電子郵件的textarea被RTE取代,我可以發送格式化的電子郵件。所以這在Firefox中運行得非常好。使用IE7時,即使在我選擇電子郵件的下拉選項之前,RTE也會顯示出來,這會使整個頁面變得混亂。當我選擇電子郵件的下拉選項時,我只能看到普通文本區域,而RTE仍然位於頁面頂部。

+0

OK,不確定 我完全瞭解它 - 當你說「我選擇一個發送郵件的下拉選項,所以我的textarea for email顯示出來」,textarea已經是頁面的一部分(但是隱藏),或者當你選擇時它是動態創建的下拉?看起來,RTE的工作原理是隱藏textarea並將其替換爲iframe,所以如果textarea已經隱藏起來,並且在從下拉列表中選擇時可見,這將部分解釋您在IE中看到的行爲。對不起,可能需要看到實際的代碼來幫助解決問題,但這裏有太多的潛在因素。 – 2010-01-04 23:18:15

+0

你幾乎得到了我想說的話。 textarea被隱藏。它顯示在選擇下拉選項上。爲什麼在這種JavaScript場景中,IE不會像Firefox一樣行事? – yogsma 2010-01-05 02:53:00

回答

9

document.getElementsByTagName( '文本區域')的長度> 0

1

可以使用(注意複數形式!)

var e = document.getElementsByTagName("textarea"); 

您可以使用jQuery還有:

$("textarea").each(function() { /* ... */ }); 

編輯: 我曾經遇到類似的問題。我正在使用fckedit,當我嘗試閱讀我的文本編輯器的值(document.getElementById('blabla').value)時,我變得空白,即使是強硬的富文本編輯也是在屏幕上顯示某些東西。

事實證明,fckedit API在textearea頂部打開一個新元素,並且只有當您從頁面導航時,纔會將其內部數據(如果我沒有錯誤地將它放在iframe上)同步到原始textarea的。

故事的寓意:如果您使用的是一些richtext API--使用它的API來查詢「textarea」的狀態。希望這可以幫助你,因爲我不知道你正在使用的庫。

PS:我實際上使用$("blabla").val() ...這也是JavaScript ...由於某種原因,人們認爲jQuery不是JavaScript。這是爲什麼?

+3

不明白爲什麼人們說你也可以使用JQuery來給出Javascript的答案。同意它的一個好的庫和東西,爲什麼不必要地說「你也可以使用JQuery」,當它可以用普通的Javascript來解決時。 – Zaje 2010-01-04 20:44:50

+0

我只是教育其他選項。如果我知道Prototype,我也會舉一個例子。 – elcuco 2010-01-04 20:49:17

+0

謝謝你們,但這並沒有幫助我。我試過這個,但是在我檢查textarea的if子句後面包含的javascript永遠不會被調用。 – yogsma 2010-01-04 20:56:42

0

由於openWYSIWYG在運行中生成iframe,因此獲取/設置其內容並不那麼簡單。

我目前正在改變源代碼中的這些設置。將在我得到更改後立即在此發佈鏈接。

0

純JavaScript(您可以使用此代碼)

textarea是HTML元素的標籤

的JavaScript:

if(document.getElementsByTagName('textarea').length > 0) { 

} 

HTML代碼:

<div class="flavor"> 

    <div class="value"> 

    <textarea name="name" rows="8" cols="80"></textarea> 

    </div> 

</div> 

<script type="text/javascript"> 

    var flavorbox = document.getElementsByClassName('flavor')[0] 
          .getElementsByClassName('value')[0] 
          .getElementsByTagName('textarea').length; 

    alert(flavorbox); 

</script> 
相關問題