奇怪的html控制項textarea

來源:互聯網
上載者:User

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

<textarea id="txtTest1" value="123" cols="20" rows="2"></textarea>

然後,vs有一個提示:訊息 1 驗證 (XHTML 1.0 Transitional): 屬性“value”不是元素“textarea”的有效屬性。
暈,textare難道竟然沒有value屬性?然後樓豬又嘗試將textarea放在服務端:

<textarea id="txtTest1" cols="20" rows="2" enableviewstate="false" runat="server"></textarea>

然後,在cs檔案下,可以寫如下代碼:

    this.txtTest1.Value = "123";

這說明服務端的Value屬性是存在的,樓豬又查了一下Value屬性中繼資料說明:擷取或設定在 System.Web.UI.HtmlControls.HtmlTextArea 控制項中輸入的文本。再查看一下產生的html源碼:

<textarea name="txtTest1" id="txtTest1" cols="20" rows="2">123</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="txtTest1" cols="20" rows="2" enableviewstate="false" runat="server"></textarea>

cs下寫下如下代碼:

          this.txtTest.Text = "123";
          this.txtTest1.Value = "123";

它們產生的html也是一樣的:

        <textarea name="txtTest" rows="2" cols="20" id="txtTest">123</textarea>
        <textarea name="txtTest1" id="txtTest1" cols="20" rows="2">123</textarea>

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

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

然後,樓豬又通過javascript來擷取它們的value:

        var txtValue=document.getElementById("txtTest").value;
        alert(txtValue);
        var txtValue1=document.getElementById("txtTest1").value;
        alert(txtValue1);

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.