首頁  >  文章  >  web前端  >  html中textarea輸入框提示文字必須添加預設內容的完美解決

html中textarea輸入框提示文字必須添加預設內容的完美解決

黄舟
黄舟原創
2017-07-19 17:38:5610185瀏覽


完美解決textarea輸入框提示文字,必須新增預設內容

<input>有placeholder標籤,可以加入提示文字,但是<textarea></textarea>沒有,一般來說我們是把提示內容寫在<textarea></textarea>外面,如下圖:
html中textarea輸入框提示文字必須添加預設內容的完美解決

#當然,這樣的佈局並不是最想要的效果,
最想要的是文字顯示在輸入框內,點擊輸入框時隱藏,離開輸入框時,如果輸入框沒有內容,又顯示提示:

網路上搜到的都是利用js透過取得或失去焦點來設定textarea的內容,這有個最大的問題就是:因為設定了預設內容,如果使用者不點擊輸入框,直接提交,就把預設的提示內容提交到後台了。

本人想出來的解決方案是:將提示內容寫在一個p中,透過css的position屬性來控制,將p顯示到<textarea></textarea>中,點擊<textarea></textarea>時,隱藏到p,這樣即使用戶不點擊輸入框直接提交,也不會把預設的提示文字提交到後台,效果如下圖:
html中textarea輸入框提示文字必須添加預設內容的完美解決

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>解决textarea输入框提示文字,必须添加默认内容</title>
        <style type="text/css">
             body{font-size:12px;}
             p,p{margin:0;padding:0}             
             .textarea{            
             width:350px;height:80px;position:absolute;background:none;z-index:9
            }             
            .note{             
            position:absolute;line-height:20px;padding:3px 5px;            
             }
        </style>
    </head><body>
    <p style="position:relative;">
        <textarea class="textarea" onfocus="document.getElementById(&#39;note&#39;).style.display=&#39;none&#39;" onblur="if(value==&#39;&#39;)document.getElementById(&#39;note&#39;).style.display=&#39;block&#39;"></textarea>
        <p id="note" class="note">
            <font color="#777">在这里写入你对服务商的额外要求,服务商等级,好评率等</font>
        </p>
    </p></body>
 </html>

以上是html中textarea輸入框提示文字必須添加預設內容的完美解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn