2011-05-19 26 views
1

我的需求是根據條件填充一個textarea。Populate Textarea - JavaScript

  • 我從數據庫中檢索簽名。
  • 如果存在簽名,則用值填充textarea。
  • 如果沒有簽名,那麼textarea應該包含:
  • 輸入簽名並點擊文本區域內的 預填充的tetxt應該消失。
  • 如果用戶沒有輸入任何文字並在區域外單擊, 預先填充的文字應該返回到textarea。

我的代碼是不完整的,但作爲一個開始:

<textarea name="signature" 
    style="width:95%" 
    rows="10" 
    onclick="document.mailForm.signature.value='';"> 
<c:choose> 
    <c:when test="${signature} == '' "> 
     <c:out value="${signaturePrefix}" /> 
    </c:when> 
    <c:otherwise> 
    <c:out value="${signature}" /> 
    </c:otherwise> 
</c:choose> 
</textarea> 

感謝。

+1

你有問題嗎? – Jeremy 2011-05-19 18:48:35

+2

StackOverflow的概念是**不**:根據需求提供代碼。請閱讀常見問題解答:http://stackoverflow.com/faq;) – 2011-05-19 18:51:03

+0

那麼,你有什麼嘗試?什麼地方出了錯?你有沒有遇到['placeholder'屬性](http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#the-placeholder-attribute) ,但? – 2011-05-19 18:52:36

回答

0

對於數據庫部分,您應該粘貼到目前爲止編寫的代碼/邏輯。對於文本顯示/你可以使用一些dispaear的jQuery插件水印:

+0

感謝您的回覆。我遇到的問題是,首先,在textarea中單擊清除已經從db填充的簽名。我知道如何給它一個條件才能做到這一點,只有當預先填充的文本在那裏。其次,我不知道如何一旦點擊它就將預先填充的文本取回到文本區域。 – Viidhya 2011-05-19 19:01:12

+0

@Viidhya:因此我問你使用jQuery插件來節省你的時間。例如,請參閱此[Demo](http://remysharp.com/wp-content/uploads/2007/01/input_hint.html)。 – NAVEED 2011-05-19 19:29:11

0

都有一個Click事件僅在 「值」 是空字符串執行。然後,在處理函數結束時,移除該事件,以便用戶不會丟失所有輸入的文本。

function changeContent(element,type){ 
    element.innerHTML=""; 
    element.removeEventListener(type,changeContent,false); 
} 

<textarea name="signature" style="width:95%" rows="10" 
    <c:choose> 
    <c:when test="${signature} == '' "> 
     onclick="contentChange(this,'click');"> 
     <c:out value="${signaturePrefix}" /> 
    </c:when> 
    <c:otherwise> 
     "> 
     <c:out value="${signature}" /> 
    </c:otherwise> 
    </c:choose> 
</textarea> 

這在IE中不起作用,因爲它使用detachEvent。我會建議使用一個框架,以最少的頭髮拉動這種方法corss瀏覽器。