填充Textarea - JavaScript

时间:2011-05-19 18:45:07

标签: javascript textarea

我的要求是根据条件填充文本区域。

  • 我从db检索签名。
  • 如果存在签名,则使用值填充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>

感谢。

2 个答案:

答案 0 :(得分:0)

对于DB部分,您应该粘贴到目前为止编写的代码/逻辑。对于文本显示/显示,您可以使用一些jQuery水印插件:

答案 1 :(得分:0)

仅当“value”为空字符串时才执行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。我建议使用一个框架来使这种方法成为最简单的头发拉动器。