2016-06-03 5 views
0

У меня есть следующий веб-форма на моем ASP.NET веб-сайтаASP.NET установочное значение текстового поля с помощью JavaScript без document.getElementById()

<%@ 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. Я не понимаю, как значение Textbox задано в функции javascript.

<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?

+0

Я не думаю, что это сработало – Mairaj

+0

Я создал пустой веб-сайт ASP.NET и добавил эту страницу. Я протестировал его и смог добавить текст в текстовые поля при нажатии на кнопку. – ccyen

+0

Это действительно работает. Я думаю, что объяснение приводится здесь: http://stackoverflow.com/questions/3434278/do-dom-tree-elements-with-ids-become-global-variables. – ConnorsFan

ответ

0

процитировать ответ предоставляется в качестве комментария от ConnorsFan.

Это действительно работает. Я думаю, что объяснение приводится здесь: stackoverflow.com/questions/3434278/…. - ConnorsFan Jun 3 '16 at 12:29

0

Вы можете использовать компонент «RUNAT сервер», так что вы должны использовать код опережать:

TextBox2.Text = yourvalue; 

И создать метод стороны сервера для управления входами.

Я думаю, что это, как этот пост: textarea control, asp.net c#

+0

Я знаю, что должен использовать код, так как он имеет «сервер runat», но я хочу знать, почему javascript, похоже, может использовать синтаксис кода в своей функции. – ccyen

+0

Возможны два случая: 1) ASP.NET создает некоторую глобальную переменную js, к которой вы можете получить доступ. 2) Ваш скрипт является «сервером runat», почему? Я не знаю, не вижу ли я весь код. –

+0

Еще раз спасибо за ответ. Я не совсем уверен, что вы имеете в виду, мой сценарий - «runat sever». Это весь код, который у меня есть, и для этой веб-страницы нет кода. Я создал его, упростив веб-страницу из старого проекта моей компании. На этой странице нет кода. Все, что я сделал, это добавить эту веб-страницу на пустой веб-сайт ASP.NET и, похоже, работает. – ccyen

Смежные вопросы