Получить значение текстового поля после изменения с помощью javascript
Изменение значения текстового поля с помощью javascript при изменении выпадающего списка (без обратной передачи). Текстовое поле обновляется должным образом, но значение не приходит при отправке формы. Я предполагаю, что это происходит потому, что изменение javascript происходит только на стороне клиента? Как я могу получить это значение на стороне сервера?
Что я уже пробовал:
<pre> <script type="text/javascript"> function ddlChange() { var ddl = document.getElementById('<%=DDLg4corp.ClientID %>'); var textBox = document.getElementById('<%= txtg4action.ClientID%>'); textBox.value = ddl.options[ddl.selectedIndex].value; } </script> <asp:DropDownList runat="server" ID="DDLg4corp" onchange="ddlChange();"> <asp:ListItem Value="1" Text="Option 1"></asp:ListItem> <asp:ListItem Value="2" Text="Option 2"></asp:ListItem> <asp:ListItem Value="3" Text="Option 3"></asp:ListItem> <asp:ListItem Value="4" Text="Option 4"></asp:ListItem> </asp:DropDownList> <asp:TextBox runat="server" id="txtg4action"></asp:TextBox>
Private Sub Button_Click(sender As Object, e As EventArgs) Handles btnSubmit1.Click, With update .Connection = connection .CommandType = CommandType.Text If qrtSelect.SelectedValue = 1 Then .CommandText = "Update table set txtg4action=@txtg4action where users=@users" .Parameters.AddWithValue("@txtg4action", txtg4action.Text)
A_Griffin
На первый взгляд в этом нет ничего плохого. Вы, должно быть, делаете что-то еще где-то еще, что вызывает вашу проблему.
Member 9388700
Когда я получаю значение txtg4action в vb, оно возвращает старое значение, а не значение из DDL. Отредактировал и добавил еще немного кода.
A_Griffin
Ну, я не знаю, но код, который у вас есть, отправит обратно выбранное значение. Если только у вас на странице нет EnableViewState = False, может быть?
Member 9388700
Скриншот отладки: https://imgur.com/a/lozni
txtg4action.text должен быть "2". Он отображается как 2 на странице, но при отправке он все еще имеет старое значение. Не знаю, где еще искать или где еще я могу ошибиться. Не имеет EnableViewState = False
A_Griffin
А как насчет вашего события page_load? Вы переустанавливаете его значение там, не принимая во внимание обратную передачу?
Member 9388700
Используя скрипт, чтобы мне не пришлось делать обратную передачу с помощью DDL. Ничто не сбрасывается при загрузке страницы. Это просто кажется, что значение никогда не попадает в код позади. Я новичок в этом деле, так что прошу прощения, если я не очень хорошо понимаю.
A_Griffin
Ну, по - видимому, вы отправляете ответ каким - то образом-через кнопку или что-то еще-вот что такое отправка формы... ИДК, но код, который вы разместили, в порядке. Я могу опубликовать (как "решение") полную простую страницу, используя ее, чтобы доказать это, если вы хотите...
Member 9388700
Я нашел уродливый обходной путь, чтобы получить желаемый результат. Я бы принял решение, если бы вы его опубликовали.
Bryian Tan
Да, я тоже не вижу никаких проблем. Может быть, вы пропустили какую-то подробную информацию в посте. В любом случае, динамический запрос в вашем посте очень заразителен и открыт для потенциальной SQL-инъекции, старайтесь избегать этого, если это возможно, и используйте параметризованный запрос. Вот пример того, как реплицировать SQL-инъекцию на основе вашего текущего кода. Надеюсь, это вас убедит. SQL-инъекции и межсайтовые Скрипты[^]
A_Griffin
- он использовал параметризованный запрос ...?
Bryian Tan
мой плохой :) извините.