У меня есть следующая функция для проверки на стороне клиента:
<script type="text/javascript">
$(function () {
document.onkeydown = function () {
if (event.keyCode == 116) {
event.keyCode = 0;
event.returnValue = false;
}
}
$("#btnEnviar").click(function () {
$("#cerrarPopup").click(addHandlerCloseModal);
var msg = "";
if ($("#txtNombre").val() == "") { msg += "El nombre es un campo obligatorio <br/>"; };
if ($("#txtTelefono").val() == "" ||
!$.isNumeric($("#txtTelefono").val()) ||
$("#txtTelefono").val().length != 9) {
msg += "Introduzca un teléfono válido de 9 posiciones. <br/>";
};
if (msg != "") {
doModal(msg);
return false;
}
if (!$('#chkClausulas').prop("checked")) {
msg = "No ha aceptado las condiciones legales";
doModal(msg);
return false;
}
//$("#span1").html('');
return true;
});
});
function doModal(obj) {
$("#spanMsg").each(function () {
$(this).html(obj);
});
$("#divModal").modal();
}
function clearForm() {
$("#rightContent input:text").val('');
$('#chkClausulas').attr("checked", false);
}
function addHandlerCloseModal() {
$.modal.close();
}
</script>
И затем, при проверке на стороне сервера, я обрабатываю запрос и показываю модальное сообщение, которое подтверждает, что запрос был успешным.
Dim msgScript As String = "<script type='text/javascript'>" & _
"$('#span1').html('');clearForm();doModal('#msg#'); " & _
"$('#cerrarPopup').click(function () { $.modal.close(); }); " &
"</script>"
ScriptManager.RegisterStartupScript(Me, Me.GetType, "doModal", _
msgScript.Replace("#msg#", outMsg), False)
Это работает как ожидалось. Клиент получает обработанное сообщение и clearForm(); функция очищает все входные данные: текстовые элементы управления.
Проблема заключается в том, что когда вы нажимаете кнопку обновления в браузере или F5 или CTRL + F5, форма снова представляется с предыдущими значениями, хотя формы были удалены.
Я использовал это:
document.onkeydown = function () {
if (event.keyCode == 116) {
event.keyCode = 0;
event.returnValue = false;
}
}
Чтобы избежать нажатия клавиши F5, но она не работает все время.
Как я могу избежать повторного представления формы. Почему кеширование браузера вводит значения ввода, хотя элементы управления очищаются?
Я не знаю, понимаю ли я проблему, в любом случае, вы пытались поставить чек, когда страница загружает сервер?
http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback%28v=vs.110%29.aspx