熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

奇怪的html控件textarea

2013-11-13 10:00:28  來源: .NET編程 

  然一直沒怎麼用過html控件textarea但是根據自己一貫的作風樓豬大膽認為textarea和服務器控件TextBox的TextMode為MultiLine的文本框在最終生成的html標簽上應該是一樣的也許是先入為主吧在上周的一個設計頁面中樓豬毫不思索地寫下了下面的html代碼

  <textarea id=txtTest value= cols= rows=></textarea>

  然後vs有一個提示消息 驗證 (XHTML Transitional): 屬性value不是元素textarea的有效屬性

  暈textare難道竟然沒有value屬性?然後樓豬又嘗試將textarea放在服務端

  <textarea id=txtTest cols= rows= enableviewstate=false runat=server></textarea>

  然後在cs文件下可以寫如下代碼

  thistxtTestValue = ;

  這說明服務端的Value屬性是存在的樓豬又查了一下Value屬性元數據說明獲取或設置在 SystemWebUIHtmlControlsHtmlTextArea 控件中輸入的文本再查看一下生成的html源碼

  <textarea name=txtTest id=txtTest cols= rows=></textarea>

  現在一目了然原來textarea的value值在textarea開始和結束標簽內而不是像type為text的input看起來是將value放在value屬性上然後樓豬又用服務器控件TextBox和runat為server的textarea又進行了一下對比

  代碼

  <asp:TextBox ID=txtTest TextMode=MultiLine EnableViewState=false runat=server></asp:TextBox>

  <textarea id=txtTest cols= rows= enableviewstate=false runat=server></textarea>

  cs下寫下如下代碼

  thistxtTestText = ;

  thistxtTestValue = ;

  它們生成的html也是一樣的

  <textarea name=txtTest rows= cols= id=txtTest></textarea>

  <textarea name=txtTest id=txtTest cols= rows=></textarea>

  而對於TextBox而言它又是可以直接在標簽上寫Text屬性的而runat=server的textarea卻不可以直接在標簽內寫Value屬性

  <asp:TextBox ID=txtTest TextMode=MultiLine Text= EnableViewState=false runat=server></asp:TextBox>

  然後樓豬又通過javascript來獲取它們的value

  var txtValue=documentgetElementById(txtTest)value;

  alert(txtValue);

  var txtValue=documentgetElementById(txtTest)value;

  alert(txtValue);

  kao這一次它們又都彈出了值!這就說明textarea是有value屬性的(換成innerText屬性也一樣)真的徹底服了最後樓豬為了保險起見將textarea換成了自己一直使用習慣的沒有視圖狀態的TextBox因為現在不熟悉也吃不透這個textarea還有哪些古怪的設計期待指點


From:http://tw.wingwit.com/Article/program/net/201311/12282.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.