Я пытаюсь вернуть текст, который был введен в элемент textbox на моем сайте. После ввода некоторого текста я заметил, что это не возвращает данные:

document.getElementById('myTextBox').text;

Но это сделал:

document.getElementById('myTextBox').value;

РЕДАКТИРОВАТЬ: Javascript выше был использован на стороне клиента, чтобы проверить то, что читалось, с помощью .text возвращает пустую строку, которая при передаче обратно на сервер действительно показывает пустую строку. .value содержал мои введенные данные, но когда я пытался использовать серверную часть .value, возникали ошибки.

Однако в моем классе .cs, когда я попытался добавить следующее:

string myInput = myTextBox.Value;

Я получаю сообщение об ошибке, говорящее

"System.Web.UI.WebControls.TextBox не содержит определения значения" ... "."

Пример, на который я ссылался, пришел отсюда: http://www.aspsnippets.com/Articles/Get-value-of-HTML-Input-TextBox-in-ASPNet-code-behind-using-C-and- VBNet.aspx

Мое текстовое поле объявлено как:

<asp:TextBox ID="myTextBox" runat="server"></asp:TextBox>

Однако, когда я пытаюсь изменить элемент TextBox на элемент Input, я получаю сообщение об ошибке «Тип или имя пространства имен« Input »не существует ...»

Как я могу передать данные, которые были введены в мой TextBox обратно на сервер?

0
Novastorm 16 Дек 2015 в 13:38

4 ответа

Лучший ответ

В учебном пособии вы повторяете, как они продемонстрировали, как получить доступ к значению текстового поля ввода html на стороне сервера. Вы смешиваете элемент управления html и серверный элемент управления asp.net.

Это представляет собой серверный элемент управления ASP.NET:

<asp:TextBox ID="myTextBox" runat="server"></asp:TextBox>

И вы можете получить доступ к его значению на стороне сервера (файл .cs) следующим образом:

string vaue = myTextBox.Text;

С другой стороны, html input можно преобразовать в серверный элемент управления, добавив атрибут runat="server" следующим образом:

<input type="text" id="txtName" name="Name" value="" />

В этом случае это HtmlInputText, и вам нужно получить доступ к его значению следующим образом: -

string value = txtName.Value;
1
Rahul Singh 16 Дек 2015 в 10:45

Чтобы получить текст вашего текстового поля для функции JavaScript:

 function GetValueOfmyTextBox()
    {            
        var myTB = document.getElementById('<%= myTextBox.ClientID %>');
        alert(myTB.value);
    }
0
aguetat 16 Дек 2015 в 10:54

Элементы HTML, например, (входные) не доступны в вашем коде позади. Доступ к элементам управления Asp.Net, подобным тому, который вы использовали, доступен, если вы используете атрибут runat = "server".

Если вы хотите получить доступ к вашему текстовому полю Asp.Net в вашем коде (.cs), вам не нужен JavaScript. Просто используйте:

string value = this.myTextBox.Text

Но если ваше текстовое поле является только вводом HTML, вам нужно использовать некоторую логику Javascript, чтобы получить значение ввода и передать его в ваш файл .cs.

Для этого вы должны сделать что-то вроде этого: Передача значений из javascript в код в ASP.NET

1
Community 23 Май 2017 в 10:27

Использование:

string myInput = myTextBox.Text;

Это даст вам весь текст, набранный в текстовом поле

0
Nodiink 16 Дек 2015 в 10:44