在.cshtml页面中,
<section>
<label class="select">
@if (itm.OutOfStock)
{
<select class="form-control" id="itm_SelectedQty" name="itm.SelectedQty" disabled="disabled">
<option value=""></option>
</select>
}
else
{
@Html.DropDownListFor(m => itm.SelectedQty, itm.QtyChoices, "", new { @class = "form-control" })
}
@Html.HiddenFor(m => itm.MenuItemId, new { @class = "itm_MenuItemId" })
@Html.HiddenFor(m => itm.ItemAmount, new { @class = "itm_ItemAmount" })
<i></i>
</label>
</section>
并在更改时调用以下jQuery代码:
$('.form-control').change(function () {
var selectedQty = this.value;
});
当有人单击浏览器的后退按钮时,如何在更改功能上使用相同的名称?
答案 0 :(得分:0)
您真的无法从请求中得知单击了后退按钮...
一种解决方案是使用window.history
另一种选择是向您的页面添加一个isDirty
变量。此变量将包含在您的请求中,因此您可以使用它来检测页面是否脏了(即,单击了后退按钮):
在表单中添加一个隐藏变量:
/* I am using bootstrap, d-none would hide the input */
<input type="text" value="0" id="isDirty" class="d-none" />
然后在您的JavaScript代码(我正在使用jQuery)中,将isDirty
的值设置为1
$(document).ready(function ($) {
var isDirty = $('#isDirty');
if (isDirty.length) { //<-- is dirty is defined
// if user click the back button, isDirty is 1, call your function here
if (isDirty.val() === "1") {
// call whatever function you want to run on back button click
}
else {
isDirty.val("1"); // <-- set isDirty to 1
}
}
});