Cómo impedir que Google Chrome almacenamiento en caché de mis entradas, especialmente los ocultos cuando el usuario haga clic en Atrás?
-
26-09-2019 - |
Pregunta
tengo una asp.net mvc aplicación que tienen un buen número de entradas ocultas para mantener los valores de todo y dar formato a sus nombres para que pueda utilizar la unión del Modelo más tarde, cuando envíe el formulario.
i tropezar en un bicho raro con cromo, que no tengo con IE o Firefox cuando el usuario somete el formulario y haga clic en el botón de atrás, me parece que Chrome mantener los valores de entrada ocultos también.
todo este trozo se genera a través de JavaScript, por lo tanto creo cromo es el cacheado esto.
function addProductRow(productId, productName) {
if (productName != "") {
//use guid to ensure that the row never repeats
var guid = $.Guid.New();
var temp = parseFloat($(".tboProductCount").val());
//need the span to workaround for chrome
var szHTML = "<tr valign=\"top\" id=\"productRow\"><td class=\"productIdCol\"><input type=\"hidden\" id=productRegsID" + temp + "\" name=\"productRegs[" + temp + "].productId\" value=\"" + productId + "\"/>"
+ "<span id=\"spanProdID" + temp + "\" name=\"spanProdID" + temp + "\" >" + productId + "</span>"
+ "</td>"
//+ "<td><input type=\"text\" id=\"productRegName\" name=\"productRegs[" + temp + "].productName\" value=\"" + productName + "\" class=\"productRegName\" size=\"50\" readonly=\"readonly\"/></td>"
+ "<td><span id=\"productRegName\" name=\"productRegs[" + temp + "].productName\" class=\"productRegName\">"+ productName + "<\span></td>"
+ "<td id=\"" + guid + "\" class=\"productrowguid\" \>"
+ "<input type=\"text\" size=\"20\" id=\"productSerialNo" + temp + "\" name=\"productRegs[" + temp + "].serialNo\" value=\"" + "\" class=\"productSerialNo\" maxlength=\"18\" />"
+ "<a class=\"fancybox\" id=\"btnImgSerialNo" + temp + "\" href=\"#divSerialNo" + temp + "\"><img class=\"btnImgSerialNo\" src=\"Images/landing_14.gif\" /></a>"
+ "<span id=\"snFlag" + temp + "\" class=\"redWarning\"></span></td>"
+ "<td><input type=\"text\" id=\"productRegDate" + temp + "\" name=\"productRegs[" + temp + "].PurchaseDate\" readonly=\"readonly\" />"
+ "<span id=\"snRegDate" + temp + "\" class=\"redWarning\"></span></td>"
+ "<td align=\"center\"><img style=\"cursor:pointer\" id=\"btnImgDelete\" src=\"Images/btn_remove.gif\" onclick=\"javascript:removeProductRow('" + guid + "')\" /><div style=\"display:none;\"><div id=\"divSerialNo" + temp + "\" style=\"font-family:verdana;font-size:11px;width:600px\">" + serialnumbergeneral + "<br /><br />" + getSNImageByCategory(productId) + "</div></div></td>"
+ "</tr>";
$(".ProductRegistrationTable").append(szHTML);
$("a.fancybox").fancybox();
//initialization
$("#productRegDate" + temp).datepicker({
minDate: new Date(1996, 1 - 1, 1),
maxDate: 0
});
//sanity check
//s7test
alert('1 '+$("#spanProdID" + temp));
alert('2 '+$("#productRegsID" + temp));
} //end function addNewProductRow
necesito el id que se actualiza cuando el usuario seleccione un nuevo producto, pero poner otra etiqueta span junto a él muestra que el lapso tendrá el nuevo id de la entrada oculta todavía tendrá el id anterior.
¿hay una manera elegante de solucionar este problema?
gracias
Solución
Movido aquí después de leer @pruts comentario;)
mi jefe encontró la respuesta, era una sencilla autocompletar = "off" añadido a los atributos de entrada, aunque vwd bandera voluntad como un error:)
Otros consejos
Creo que se puede restablecer los campos ocultos, tan pronto se carga la página.
<script type="text/javascript">
$(function() {
$("input[type=hidden]").val("");
});
</script>
Este código se ejecuta cuando se pulse "volver".