填充文本区域 - JavaScript



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

  • 我从数据库中检索签名。
  • 如果签名存在,则用值填充文本区域。
  • 如果没有签名,则文本区域应包含:
  • 输入签名并在文本区域内单击,预填充的 TETXT 应消失。
  • 如果用户未输入任何文本并在区域外单击,预填充的文本应返回到文本区域中。

我的代码不完整,但作为一个开始:

<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>

谢谢。

对于数据库部分,您应该粘贴到目前为止编写的代码/逻辑。对于文本出现/消失,您可以使用一些jQuery水印插件:

  • http://code.google.com/p/jquery-watermark/
  • http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/(演示)

仅当"value"为空字符串时才执行单击事件。然后,在处理程序函数结束时,删除事件,以便用户不会丢失所有输入的文本。

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。我建议使用一个框架来使这种方法具有最少的头发拉动。

相关内容

最新更新