很长一段时间以来,我一直在努力显示确认框。问题是我有一个下拉列表 div =“Module”,在选择下拉列表中的任何值时,我会在另一个 div =“DivRoles”中显示相应的值。如果在单击下拉菜单中的任何其他模块时在 DivRoles 中进行了任何更改,我需要保存更改,因此需要显示确认框并保存更改。
代码片段如下:
<div id="roledef" >
<div class="formlabel">
<div align="right" class="label">Select Module:</div>
</div>
<!--- Here is my Module drop down whose id = "Module"---->
<div class="formlabel">
@Html.DropDownListFor(model => model.Module, (IEnumerable<SelectListItem>)ViewBag.lstm, "-----Select-----")
</div>
<div style="clear: both;"></div>
<br/>
<!------------I display the values here in id="DivRoles"------------->
<div id="DivRoles" align = "center" >
@Html.DropDownListFor(model => model.UserRole, new SelectList(ViewBag.lstroles, "RoleID", "RoleName", Model.UserRole), new { multiple = "multiple" })
</div>
<div align = "center" >
@Html.DropDownListFor(model => model.UserRole, new SelectList(ViewBag.lstroles, "RoleID", "RoleName", Model.UserRole), new { multiple = "multiple", @id = "rolesoriginal" })
</div>
<div style="clear: both;"></div>
<div class="formelement">
<script src="@Url.Content("~/Scripts/jquery.multi-select.js")" type="text/javascript"></script>
</div>
每次单击下拉列表中的值时,我都会调用 UpdateRoles() 函数。因此,当我第一次单击时,我不需要确认框,并且在单击 div 后,如果没有进行任何更改,我也不需要确认框。仅当在 DivRoles 标记中进行任何更改时,如果用户单击任何其他 div,我才需要保存它。
我正在尝试以下 jquery:
$('#Module').change(ifChangeSave);
function ifChangeSave() {
//UpdateRoles();
$("#divbackgroundLogoff").show();
jConfirm('Yes', 'No', '', 'Are you sure you want to Save the changes?', function (ans) {
if (!ans)
return false;
else {
UpdateRoles();
}
});
}
每次发生任何更改时,UpdateRoles 都会加载此问题。如果有更好的解决方案,请提供帮助。谢谢,数控
更新:
它的 .change() 而不是 .onchange() 函数