у меня есть asp.net mvc приложение, которые имеют довольно много скрытых исходных данных для имения в наличии значений и форматирования их имен так, чтобы я мог использовать Модель, связывающую позже, когда я отправляю форму.
я спотыкаюсь в странную ошибку с хромом, который я не имею с IE или Firefox, когда пользователь отправляет форму, и нажмите на кнопку "Назад", я нахожу, что хром сохранит мои скрытые входные значения также.
этот целый блок сгенерирован с помощью JavaScript следовательно, я полагаю, что хром кэширует это.
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
мне нужен идентификатор, который будет обновлен, когда пользователь выбирает новый продукт, но помещающий другой тег span около него показывает, что промежуток будет иметь новый идентификатор, будет скрытый вход все еще иметь предыдущий идентификатор.
существует ли изящный путь к обходному решению эта проблема?
спасибо
мой босс нашел ответ, это был простой autocomplete = "off", добавленный к входным атрибутам , хотя vwd пометит это как ошибку :)
Думаю, вы можете сбросить скрытые поля, как только страница загрузится.
<script type="text/javascript">
$(function() {
$("input[type=hidden]").val("");
});
</script>
Этот код выполняется, когда вы нажимаете «назад».