五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > textarea默認值輸入框提示文字設(shè)置的方法

textarea默認值輸入框提示文字設(shè)置的方法

文章來源:365jz.com     點擊數(shù):1906    更新時間:2018-11-05 13:27   參與評論

1.textarea設(shè)置默認值

<form action="test" name="myForm" onsubmit="set()">
<textarea rows="0" cols="0" name="jsonHidden" readonly="readonly" style="display:none;"></textarea>
<input type="submit" value="提交" >

此段代碼設(shè)置一個textarea文本框 并且設(shè)置為隱藏

2.textarea高度自適應(yīng)

今天需要些一個回復(fù)評論的頁面,設(shè)計師給的初始界面就是一個只有一行的框。然后當時就想這個交互該怎么實現(xiàn)比較好,然后想起了新浪微博的做法:點擊評論,默認顯示一行,當輸入的文字超過一行或者輸入Enter時,輸入框的高度會隨著改變,直到輸入完畢。頓時覺得這個細節(jié)做得挺不錯的,可以效仿下。下面分享2種實現(xiàn)textarea高度自適應(yīng)的做法,一種是用div來模擬textarea來實現(xiàn)的,用CSS控制樣式,不用js;另一種是利用JS控制的(因為存在瀏覽器兼容問題,所以寫起來比較麻煩);

方法一:div模擬textarea文本域輕松實現(xiàn)高度自適應(yīng)

textarea.png

因為textarea不支持自適應(yīng)高度,就是定好高度或者是行數(shù)之后,超出部分就會顯示滾動條,看起來不美觀。

而用DIV來模擬時,首先遇到的問題是:div怎么實現(xiàn)輸入功能?

可能我們還是第一次見到這個屬性contenteditable,如一個普通的block元素上加個contenteditable="true"就實現(xiàn)編輯,出現(xiàn)光標了。如

1

<div contenteditable="true"></div>

contenteditable屬性雖是HTML5里面的內(nèi)容,但是IE似乎老早就支持此標簽屬性了。所以,兼容性方面還是不用太擔心的。

CSS代碼

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

.textarea{

    width:400px;

    min-height:20px;

    max-height:300px;

    _height:120px;

    margin-left:auto;

    margin-right:auto;

    padding:3px;

    outline:0;

    border:1pxsolid#a0b3d6;

    font-size:12px;

    line-height:24px;

    padding:2px;

    word-wrap:break-word;

    overflow-x:hidden;

    overflow-y:auto;

  

    border-color:rgba(82,168,236,0.8);

    box-shadow:inset01px3pxrgba(0,0,0,0.1),008pxrgba(82,168,236,0.6);

}

方法二:文本框textarea根據(jù)輸入內(nèi)容自適應(yīng)高度

demo演示地址:http://www.xuanfengge.com/demo/201308/textarea/demo2.html

這個寫法是用原生JS寫的,考慮了很多兼容性問題,完全和新浪微博的回復(fù)效果一樣的功能。有興趣的童鞋可以仔細分析下代碼。

CSS代碼

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#textarea

 {

    display:block;

    margin:0auto;

    overflow:hidden;

    width:550px;

    font-size:14px;

    height:18px;

    line-height:24px;

    padding:2px;

}

textarea{

    outline:0none;

    border-color:rgba(82,168,236,0.8);

    box-shadow:inset01px3pxrgba(0,0,0,0.1),008pxrgba(82,168,236,0.6);

}

JS代碼

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

/**

 * 文本框根據(jù)輸入內(nèi)容自適應(yīng)高度

 * @param                {HTMLElement}        輸入框元素

 * @param                {Number}                設(shè)置光標與輸入框保持的距離(默認0)

 * @param                {Number}                設(shè)置最大高度(可選)

 */

var autoTextarea = function (elem, extra, maxHeight) {

        extra = extra || 0;

        var isFirefox = !!document.getBoxObjectFor || 'mozInnerScreenX' in window,

        isOpera = !!window.opera && !!window.opera.toString().indexOf('Opera'),

                addEvent = function (type, callback) {

                        elem.addEventListener ?

                                elem.addEventListener(type, callback, false) :

                                elem.attachEvent('on' + type, callback);

                },

                getStyle = elem.currentStyle ? function (name) {

                        var val = elem.currentStyle[name];

  

                        if (name === 'height' && val.search(/px/i) !== 1) {

                                var rect = elem.getBoundingClientRect();

                                return rect.bottom - rect.top -

                                        parseFloat(getStyle('paddingTop')) -

                                        parseFloat(getStyle('paddingBottom')) + 'px';       

                        };

  

                        return val;

                } : function (name) {

                                return getComputedStyle(elem, null)[name];

                },

                minHeight = parseFloat(getStyle('height'));

  

        elem.style.resize = 'none';

  

        var change = function () {

                var scrollTop, height,

                        padding = 0,

                        style = elem.style;

  

                if (elem._length === elem.value.length) return;

                elem._length = elem.value.length;

  

                if (!isFirefox && !isOpera) {

                        padding = parseInt(getStyle('paddingTop')) + parseInt(getStyle('paddingBottom'));

                };

                scrollTop = document.body.scrollTop || document.documentElement.scrollTop;

  

                elem.style.height = minHeight + 'px';

                if (elem.scrollHeight > minHeight) {

                        if (maxHeight && elem.scrollHeight > maxHeight) {

                                height = maxHeight - padding;

                                style.overflowY = 'auto';

                        } else {

                                height = elem.scrollHeight - padding;

                                style.overflowY = 'hidden';

                        };

                        style.height = height + extra + 'px';

                        scrollTop += parseInt(style.height) - elem.currHeight;

                        document.body.scrollTop = scrollTop;

                        document.documentElement.scrollTop = scrollTop;

                        elem.currHeight = parseInt(style.height);

                };

        };

  

        addEvent('propertychange', change);

        addEvent('input', change);

        addEvent('focus', change);

        change();

};

HTML代碼(寫在body里面的)

1

2

3

4

5

6

<textareaid="textarea"placeholder="回復(fù)內(nèi)容"></textarea>

    <script>

        vartext=document.getElementById("textarea");

        autoTextarea(text);//

 調(diào)用

    </script>

3.textarea獲取內(nèi)容

方法一:JS獲取textarea中的內(nèi)容 用document.getElementById(v).value 就可以的。

比如:


1

2

3

4

5

<textarea id="abc" name="t" cols="72" rows="12">123456</textarea>

<script>

var x=document.getElementById("abc").value;/這個x的值就是獲取到的內(nèi)容

alert(x);

</script>

方法二:

1

2

3

4

5

6

7

8

9

10

11

12

13

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

</head>

<body>

<textarea id='myText'>這里是textarea內(nèi)容</textarea>

<script type="text/javascript" src="Js/jquery-1.7.js"></script>

<script type="text/javascript">

alert("JS獲取方式:"+document.getElementById("myText").value);//JS

alert("JQuery獲取方式:"+$("#myText").val());//Jquery

</script>

</body>

</html>


4.textarea限制輸入字數(shù)

實現(xiàn)textarea限制輸入字數(shù)(包含中文只能輸入10個,全ASCII碼能夠輸入20個)

textarea稱文本域,又稱文本區(qū),即有滾動條的多行文本輸入控件,在網(wǎng)頁的提交表單中經(jīng)常用到。與單行文本框text控件不同,它不能通過maxlength屬性來限制字數(shù),為此必須尋求其他方法來加以限制以達到預(yù)設(shè)的需求。

通常的做法就是使用#腳本語言來實現(xiàn)對textarea文本域的字數(shù)輸入限制,簡單而實用。假設(shè)我們有一個id為 txta1 的textarea文本區(qū),我們可以通過以下代碼限制它的鍵盤輸入字數(shù)為10個字(漢字或其他小角字符):

1

2

3

4

5

6

7

8

9

10

<script language="#" type="text/ecmascript">

window.onload = function()

{

document.getElementById('txta1').onkeydown = function()

{   

    if(this.value.length >= 10)

      event.returnValue = false;

}

}

</script>

它的原理是通過對keydown(鍵盤鍵位按下)事件對指定id號的文本區(qū)進行監(jiān)測,可以想象,它只能限制鍵盤輸入,如果用戶通過鼠標右鍵粘貼剪切板中的文本,它無法控制字數(shù)。

通過鍵盤輸入,以上文本區(qū)只能輸入10個字。但是,我們的目的并沒有達到!請隨便復(fù)制一些文本,試著用鼠標右鍵粘貼,看看發(fā)生了什么。

你可以在網(wǎng)上找到類似上述的其他JS腳本,它們不管多么優(yōu)秀,其原理都是一樣的,通過對keydown、keyup或keypress之類的鍵盤鍵位操作事件來監(jiān)控文本區(qū)的輸入,無法防止鼠標右鍵的粘貼,為此,如果一定要真正地限制textarea的字數(shù),我們還得為網(wǎng)頁加另一把鎖——禁用鼠標右鍵,這無疑得付出額外的開銷,同時也可能是網(wǎng)頁制作者不一定愿意做的。其實,還有一個更簡單的方法,使用onpropertychange屬性。

onpropertychange可以用來判斷預(yù)定元素的value值,當元素的value值發(fā)生變化時判斷事件就會被觸發(fā),僅關(guān)心被監(jiān)測元素的value值,避開了輸入的來源,從而可以比較理想地達成我們的限制字數(shù)這一目的。它屬于JS范疇,可以在表單方框區(qū)代表中嵌套使用,以下是代碼和效果樣式,可以像上面那樣測試輸入,你會發(fā)現(xiàn)它真正達到目的:不管用什么方式輸入,它只能輸入100個字(漢字或其他小解符號):

代碼:

1

<textarea onpropertychange="if(value.length>100) value=value.substr(0,100)" class="smallArea" cols="60" name="txta" rows="8"></textarea>

當然,為了更為保險,處理表單數(shù)據(jù)的后臺腳本程序還應(yīng)該對提交來的數(shù)據(jù)進行再一次的檢測,如果字數(shù)超出預(yù)設(shè)的數(shù)量則進行相應(yīng)處理,這樣才達到真正限制字數(shù)的目的。(完)

另外一種方法實現(xiàn)textarea限制輸入字數(shù)(包含中文只能輸入10個,全ASCII碼能夠輸入20個)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<script>

function check() {

var regC = /[^ -~]+/g;

var regE = /\D+/g;

var str = t1.value;

if (regC.test(str)){

    t1.value = t1.value.substr(0,10);

}

if(regE.test(str)){

    t1.value = t1.value.substr(0,20);

}

}

</script>

<textarea maxlength="10" id="t1" onkeyup="check();">

</textarea>

還有一種方式:

1

2

3

4

5

6

7

function textCounter(field, maxlimit) {

if (field.value.length > maxlimit){

field.value = field.value.substring(0, maxlimit);

}else{

document.upbook.remLen.value = maxlimit - field.value.length;

}

}

1

2

3

4

5

6

7

8

9

10

<textarea name=words cols=19 rows=5 class=input1 onPropertyChange= "textCounter(upbook.words, 50) "> textarea> 剩余字數(shù): <input name=remLen type=text id= "remLen " style= "background-color: #D4D0C8; border: 0; color: red " value=50 size=3 maxlength=3 readonly>

  

  

function LimitTextArea(field){ 

   maxlimit=200;   

    if (field.value.length > maxlimit)    

     field.value = field.value.substring(0, maxlimit);          

}

<textarea cols=50 rows=10 name="comment" id="commentarea" onKeyDown="LimitTextArea(this)" onKeyUp="LimitTextArea(this)" onkeypress="LimitTextArea(this)" >

</textarea>


title="The textarea width must less than 300 characters." 放在textarea 里面提示輸入最大字節(jié)數(shù)。

例如:

1

<textarea title="The textarea width must less than 300 characters." cols=50 rows=10 name="comment" id="commentarea" onKeyDown="LimitTextArea(this)" onKeyUp="LimitTextArea(this)" onkeypress="LimitTextArea(this)" ></textarea>

5.textarea 換行

最近碰到一個數(shù)據(jù)轉(zhuǎn)來轉(zhuǎn)去轉(zhuǎn)到Textrea里面是否能真正按行存放的問題,在這里總結(jié)一下:

問題描述:

比如get數(shù)據(jù)到一個TextArea里面,如“AAA BBB”,想把這段文字在TextArea里面真正按行存放,而不是顯示出來按行存放(所謂的真正按行存放就是,再把這個TextArea的數(shù)據(jù)post到另外一個頁面的Textarea里面仍是按行存放)

問題解決1:

一開始是提交數(shù)據(jù)的時候格式是AAA<BR />BBB,但是這是顯示換行,其實在TextArea里面并不是真正按行存放的,因為這個時候再提交給另外一個TextArea的時候就是顯示AAABBB,而不是換行顯示了,因此僅僅是顯示按行存放而已

問題基礎(chǔ)知識:

HTML里面的換行是<BR />,而TextArea的換行是/n

問題解決2:

先提交數(shù)據(jù)再使用Javascript對<BR />和/n進行替換

提交的時候仍是<BR />作為分隔符

然后提交完畢以后

1

2

3

4

5

6

<script>

        //換行轉(zhuǎn)回車

        var haha=document.getElementById("SendTextArea").value;

        haha=haha.replace('<br />','/n');

        document.getElementById("SendTextArea").value=haha;

</script>

6.textarea固定大小

TML 標簽 textarea 在大部分瀏覽器中只要指定行(rows)和列(cols)屬性,就可以規(guī)定 textarea 的尺寸,大小就不會改變,不過更好的辦法是使用 CSS 的 height 和 width 屬性,但是Chrome,Safari和FireFox渲染的效果不同,可以拖動右下角圖標改變大小。但是過分拖動大小會影響頁面布局,使頁面變得不美觀??梢酝ㄟ^添加如下兩個樣式禁用拖動,固定大?。?/p>

1:徹底禁用拖動(推薦)

1

resize: none;

2:只是固定大小,右下角的拖動圖標仍在

1

2

3

4

width: 200px;   

height: 100px;   

max-width: 200px;   

max-height: 100px;

3:瀏覽器信息:

1

Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218 Safari/535.1

7.textarea value

最近在做一個小項目,才發(fā)現(xiàn)原來textarea中居然沒有value屬性。

1

2

3

4

5

6

<tr>   

  <th>姓名*</th>      

  <td><span><input type="text" class="TextBox" id="xm" name="xm" /></span></td>

</tr>

<!--平時用<input>標簽比較多,一般在其內(nèi)添加個value屬性就可以獲取到值,但是在<textarea>標簽中添加該屬性卻獲取不到相應(yīng)的值,具體解決的辦法是用以下的格式即可:-->

<textarea>(在這里添加內(nèi)容)</textarea>

8.textarea placeholder

placeholder 屬性適用于以下的 <input> 類型:text, search, url, telephone, email 以及 password。
這個屬性是html5才有的新屬性,原來的HTML 4.01 與 HTML 5 之間的差異。


實例:

<!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輸入框提示文字,必須添加默認內(nèi)容</title>
        <style type="text/css">
             body{font-size:12px;}
             p,div{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>
    <div style="position:relative;">
        <textarea class="textarea" onfocus="document.getElementById('note').style.display='none'" onblur="if(value=='')document.getElementById('note').style.display='block'"></textarea>
        <div id="note" class="note">
            <font color="#777">在這里寫入你對服務(wù)商的額外要求,服務(wù)商等級,好評率等</font>
        </div>
    </div>
</body>
 </html>

實例二

textarea顯示默認值

點擊不顯示默認值,鼠標離開如果沒有內(nèi)容就顯示默認值,如果有內(nèi)容就顯示內(nèi)容。

<textarea class="area" onfocus="if(value=='請輸入具體內(nèi)容'){value=''}"  onblur="if (value ==''){value='請輸入具體內(nèi)容'}">請輸入具體內(nèi)容</textarea>

以上就是html中的textarea屬性大全(設(shè)置默認值 高度自適應(yīng) 獲取內(nèi)容 限制輸入字數(shù) placeholder)的詳細內(nèi)容


如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點擊進入論壇

發(fā)表評論 (1906人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號