ASP.NET使用javascript设置文本框值而不使用document.getElementById()

时间:2016-06-03 09:21:11

标签: javascript html asp.net

我在ASP.NET网站上有以下Web表单

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" ValidateRequest="false" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
        <script type="text/javascript">
            function SetTextBoxValues() {
                TextBox1.value = "Textbox can be set without calling document.getElementById()";
                TextBox2.value = "Textbox can be set without calling document.getElementById()";
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:TextBox ID="TextBox1" runat="server" Height="210px" TextMode="MultiLine" Width="725px"></asp:TextBox>
    <br/>
    <textarea rows="4" cols="50" id="TextBox2" runat="server" />
    <br/>
    <button onclick="SetTextBoxValues()">Set Text Box Value</button>
    </form>
</body>
</html>

该页面正常工作,因为我可以单击按钮并在TextBox1和Textbox2中设置值。我不明白的是在javascript函数中设置Textbox值的方式。

<script type="text/javascript">
    function SetTextBoxValues() {
        TextBox1.value = "Textbox can be set without calling document.getElementById()";
        TextBox2.value = "Textbox can be set without calling document.getElementById()";
}

通常我们需要使用以下JS代码:

document.getElementById('<%=txtTextBox.ClientID %>').value = "Some values";

但看起来我们可以在不使用document.getElementById()的情况下设置值。我可以知道它为什么这样工作吗?这是使用javascript设置文本框值的有效方法吗?

2 个答案:

答案 0 :(得分:0)

您使用组件&#34; runat服务器&#34;所以你应该使用代码behing:

TextBox2.Text = yourvalue;

创建一个方法服务器端来管理您的输入。

我认为这就像这篇文章: textarea control, asp.net c#

答案 1 :(得分:0)

引用ConnorsFan作为评论提供的答案。

  

确实有效。我想这里给出了解释:   stackoverflow.com/questions/3434278/…。 - ConnorsFan Jun 16 '16 at 12:29