Подтвердить что ты не робот

Получить значение из asp: textbox с помощью JQuery

У меня есть несколько элементов asp: textbox в форме на веб-странице, ниже - фрагмент. Первый - это поле, в которое вводится получатель, а другой - более крупное текстовое поле, в которое должно быть загружено имя получателей вместе с другим текстом.

<asp:TextBox name="recipient" ID="recipient" class="inputBox" onChange="addNames()" runat="server" />
<asp:TextBox TextMode="MultiLine" name="usermessage" ID="usermessage" class="usermessage" height="128" width="425px" runat="server"></asp:TextBox>

В это второе текстовое поле загружается стандартное сообщение с использованием JQuery с этим кодом:

$(".usermessage").val("Hello etc");

Это хорошо работает, сообщение отображается.
Когда пользователь вводит имя получателя или его собственное имя в одном из других текстовых полей, запускается addNames(). Эта функция добавляет имя получателя в стандартное сообщение в поле usermessage.

function addNames() {
    //update textbox
    var recipient = $(".recipient").val();
    var sender = $(".name").val();
    $(".usermessage").val("Hello " + recipient +", \nThis is a message. \n\rKind regards, \n" + sender);
    }

Проблема в том, что получатели и отправители двух переменных являются "undefined".

Привет undefined,
Это сообщение.

С уважением,
undefined




Фактический вопрос: каков правильный код для извлечения значения из текстового поля asp: text, если этот

var recipient = $(".recipient").val();  

не работает?

Результат в html выглядит следующим образом:

<input name="ctl00$contentPlaceHolderRightColumn$recipient" type="text" id="ctl00_contentPlaceHolderRightColumn_recipient" name="recipient" class="inputBox" onChange="addNames()" />

Я использую JQuery v1.3.2, с Firefox v3.5.3.

4b9b3361

Ответ 1

Насколько я могу судить,

var recipient = $(".recipient")

Выберет все элементы dom с классом получателя. В поле ввода есть класс "inputBox".

Вам нужно выбрать по его идентификатору, используя #

Итак:

var recipient = $("#recipient")

Но вы используете элементы управления ASP.NET, которые придают ему уникальный идентификатор, сгенерированный на сервере, поэтому он уникален. (в вашем случае это ctl00_contentPlaceHolderRightColumn_recipient)

Чтобы выбрать, вам нужно будет сделать

var recipient = $("#<%=recipient.ClientID%>")

- выявлены некоторые синтаксические ошибки

Ответ 2

Если вы установили идентификатор client asp textbox, вы сможете использовать его в JQuery так же, как и у вас, но вместо хэша вместо хэша.

например.

ClientID = "recipient"

then

    var recipient = $('#recipient').innerHTML() 

or

    var recipient = $('#recipient').text() 

Ответ 3

Я думаю, что селектор jQuery возвращает вам список объектов. Вы пробовали:

var recipient = $(".recipient")[0].val();

UPDATE

Как насчет этого:

var recipient = $( "Получатель: первый" ). Вал();

У него также есть хорошее преимущество - он будет тормозить в первом матче.

Ответ 4

С помощью этого вы также можете получить кнопку asp или любой элемент управления.

var txt_recipient = document.querySelector("input[id*='recipient']");
alert(txt_recipient.Value);

вы также можете попробовать querySelectorAll(), если у вас несколько элементов управления с одинаковым идентификатором на стороне клиента.

jQuery Equalent

$("input[id*='recipient']").val()

Ответ 5

Я думаю, что элементы управления HTML asp.net должны иметь свойство ClientID = "получатель" для доступа к элементу управления с использованием идентификатора клиента на стороне клиента. или я понятия не имею!

<asp:TextBox ID="recipient" ClientID="recipient" runat="server" name="recipient" class="inputBox" onChange="addNames()" />

попробуйте, это должно сработать.

Ответ 6

В ASP.NET вам нужно будет написать следующим образом:

var recipient = $("#<%=recipient.ClientID%>").val();