2013-11-15 58 views
0

以下代碼是執行以下操作:未定義在一個textarea

首先,創建一個div類=單詞,然後一個隱藏的ID爲txtarea textarea的並用類BTN2的按鈕。我想要發生的事情是:

頁面打開時會出現一個段落,它會淡出,留下隱藏的textarea和按鈕。用戶然後在textarea中輸入文本,按下按鈕,textarea和按鈕消失,並用div字替換,現在用戶從textarea輸入文本。

一切正常,直到段落淡出。我所得到的是帶有「未定義」一詞的textarea。如果我輸入任何文本並按下按鈕,正如所期望的那樣,textarea與按鈕一起消失,但「未定義」仍然存在。請注意,settimeout是包含的,因爲我始終在加載段落之前開始使用javascript,儘管我認爲$ document.ready函數是爲了防止這種情況發生。提前致謝。

<!DOCTYPE html> 
<html> 
<head> 
    <title> this is the title</title> 
<style> 
    p { 
     font-family: "Times New Roman",TImes, serif; 
    } 
    pre{ 
     white-space:pre-wrap;font-family: "Times New Roman",TImes, serif 
    } 
    .words { 
     position:absolute;width:auto;height:auto;top:260px;left:265px;right:225px;text-align:center;color:black; 
     font-size: 60px; 
    } 
</style> 
<script src="http://code.jquery.com/jquery-1.7.2.js"></script> 

<script> 
    $(document).ready(function(){ 
     setTimeout(function(){ 
      $("p").fadeOut(); 
      $("#newtext").fadeIn(); 
      var area = document.getElementById("newtext"); 
      str = area.value 
      $('.words').html("<pre>" + str + "</pre>") 
      $(".btn2").click(function(){ 
       $("#newtext").fadeOut() 
      }); 
     },5000); 
    }); 
</script> 
</head> 
<body> 
    <div class ="words"> 
     <p> When this fades out, enter text.</p> 
    </div> 
    <div id="newtext" style="display:none" > 
     <textarea rows="50" cols="200" id = "txtArea" > </textarea> 
     <button class="btn2">SEE YOUR TEXT</button> 
    </div> 
</body> 
</html> 
+0

我試着給textarea添加一個初始值,但它只是隨undefined一起打印。 –

+1

你爲什麼不把你的評論添加到問題中?也請編輯它並更好地格式化它,它現在像是一個文本牆。 – tjons

+0

我在發帖後添加了評論,因爲我只是想過要回答這個問題。我已經重新格式化了 –

回答

0

爲什麼混合使用jQuery和非jQuery?不這樣做:

var area = document.getElementById("newtext"); 
str = area.value 

這樣做:

var area = $('#newtext'); 
str = area.val(); 

請注意,你有一個缺少分號在area.value以上,這也可能沒有幫助。 $('.words').html("<pre>" + str + "</pre>")後面還有一個分號。

您應該在您的代碼上運行JSLint以發現缺少分號的問題。

編輯:您的功能設置與words類textarea的,裏面是空的起始值div的內容 - 這就是爲什麼你的文本消失。 This jsFiddle的作品,基於我對你想要做的事情的理解。

+0

幾乎在那裏。遵循所有的建議和所有作品更長的時間。但是,在textarea中輸入文本並按下按鈕之後,所有內容都會消失,包括我現在要顯示的div文字中的下一個文本。我不瞭解什麼?謝謝 –