У меня есть следующий код для отправки формы со скрытым значением.
Проблема в том, что я не могу установить значение MyNewValue до того, как форма будет отправлена на удаленный адрес https://some-remote-site/Form.aspx.
Кто-нибудь знает, как я могу установить скрытое значение, когда пользователь нажимает кнопку, а затем отправляет форму по тому же адресу?
MyFile.aspx
<!DOCTYPE html>
<html xmlns = "http://www.w3.org/1999/xhtml">
<head runat = "server">
<title></title>
</head>
<body style = "height: 370px">
<form id = "myForm" method = "post" runat = "server" action = "https://some-remote-site/Form.aspx">
<fieldset>
<asp:HiddenField id = "MyNewValue" Value = "X" runat = "server" />
<p>
<label for = "Username">Username:</label>
<asp:TextBox id = "Username" Text = "Username" runat = "server" />
</p>
<asp:Button ID = "SubmitForm" runat = "server" onclick = "SubmitForm_Click" Text = "Button" />
</fieldset>
</form>
</body>
MyFile.aspx.cs
// Not executed because action = "https://some-remote-site/Form.aspx" is set
protected void SubmitForm_Click(object sender, EventArgs e)
{
MyNewValue.Value = DateTime.Now.ToString();
}





Вы можете сделать это на стороне клиента, используя jQuery. Поэтому, когда пользователь нажимает кнопку «Отправить» и перед отправкой формы, вы можете обновить скрытый ввод, а затем вернуть true, чтобы продолжить отправку формы.
Это можно сделать:
$(document).ready(function(){
$('#myForm').on('submit', function(){
$('#MyNewValue').val('YOUR_VALUE');
return true;
})
});
Я думаю, что комментарий Бретта был скорее подсказкой, чтобы заполнить ответ немного большим содержанием. Да, ваш код работает, но полезно добавить некоторую информацию о том, почему и как, чтобы люди учились, а не просто копировать и вставлять ответы. Хорошие ответы - поучительные моменты :)
Было бы более приемлемым ответ сказать, что это можно сделать на стороне клиента. jQuery - хороший фреймворк и пример этому понятию.