我有以下客户端验证功能:
<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)
这是按预期工作的。客户端获取Processed消息和clearForm(); 函数清除所有输入:文本控件。
问题是当你在browsert,或F5或CTRL + F5按下刷新按钮时 虽然表格已被清除,但表格会再次提交以前的值。
我用过这个:
document.onkeydown = function () {
if (event.keyCode == 116) {
event.keyCode = 0;
event.returnValue = false;
}
}
要避免按F5键,但它一直无法正常工作。
如何避免重新提交表单。为什么浏览器缓存文本输入值 虽然控件正在被清除?
答案 0 :(得分:0)
我不知道我是否理解这个问题,在任何情况下,你是否试图在页面加载服务器端时进行检查?
http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback%28v=vs.110%29.aspx