Как мне передать текст из текстового поля в переменную, которая отправляется через запрос AJAX POST? - PullRequest
0 голосов
/ 05 августа 2020

Мне нужен текст из текстового поля txtDATE в переменную press_date. Текущий пост AJAX работает отлично. (за исключением того, что это stati c, и мне нужна переменная). Я весь день искал ответы и пробовал все. Любая помощь приветствуется.

<td>
     <asp:TextBox ID="txtDATE" runat="server" AutoPostBack="true" Width="75px" ></asp:TextBox>
</td>
var press = "'1000'";
var press_date = "'2020-08-01'";
$.ajax({
 type: "POST",
 url: "1000TIOT.aspx/GetChartData",
 data: "{ press: " + press +  ", press_date: " + press_date + " }",
 contentType: "application/json; charset=utf-8",
 dataType: "json",
 success: function (r) {
     var data1 = google.visualization.arrayToDataTable(r.d);
     var chart = new google.visualization.BarChart($("#chart")[0]);
     chart.draw(data1, options);
 },
 failure: function (r) {
     alert(r.d);
 },
 error: function (r) {
     alert(r.d);
 }
});

Ответы [ 3 ]

0 голосов
/ 06 августа 2020

Вместо:

   var press_date = "'2020-08-01'";

Вы должны иметь возможность использовать:

 var press_date = "'" + $('#txtDATE').val() + "'";

Я бы также рассмотрел возможность размещения атрибута ClientIDMode = "Stati c" для текста. поле, поскольку это не позволит коду на стороне сервера переименовать текстовое поле txtDATE системой на стороне сервера. И это гарантирует, что селектор jquery $ ('# txtDATE') сможет ссылаться на неизмененный идентификатор элемента управления. (id = "txtDATE" в этом примере).

0 голосов
/ 06 августа 2020

Я разобрался, и теперь он работает отлично.

var press_date = "'" + $('#<%= txtDATE.ClientID %>').val() + "'";

Думаю, мне удалось забыть, в разочаровании, объяснить, что это был код asp с бэкэндом vb. спасибо за ответы и помощь.

0 голосов
/ 06 августа 2020

runat="server" приведет к тому, что идентификатор будет сгенерирован иначе, чем вы ожидаете, поэтому, если вы добавите ClientIDMode="Static", идентификатор будет txtDate

<asp:TextBox ID="txtDATE" ClientIDMode="Static" runat="server" AutoPostBack="true" Width="75px" ></asp:TextBox>

, вы можете затем вытащить вывести значение с помощью

var press_date = $('#txtDATE').val();

Также вы используете автопостбек для проверки даты или чего-то еще?

Если нет, и этот ввод используется только в AJAX назовите его, вероятно, вы можете просто заменить весь этот ввод на basi c html т.е. <input type="text" id="txtDate">

вы также можете использовать <input type="date" id="txtDate">, чтобы получить поддержку браузера для выбора даты и времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...