在我的页面上,我有一个名为cbOrderSpareCustomer的组合框。 默认情况下,所选索引设置为0。
当用户更改它时,我认为该页面包含数据,当用户决定离开页面时,我想提示他让他知道数据将会丢失。
我看过很多关于此的帖子,但我对javascript很新,所以我可以使用一些帮助。
我明白我必须使用:
<script>
window.onbeforeunload= function() { return "Custom message here"; };
</script>
但是如何让它与组合框一起使用?
喜欢if cbOrderSpareCustomer.selectedIndex > 0 then prompt else just continue.
我还想阻止它在每次回发时显示提示。
我想看一个例子。
答案 0 :(得分:2)
你在客户端获得下拉列表,并检查索引,你的代码可能是:
<script>
window.onbeforeunload= function()
{
if(document.getElementById('<%=cbOrderSpareCustomer.ClientID%>').selectedIndex > 0)
{
return "Custom message here";
}
else
{
return true;
}
};
</script>
答案 1 :(得分:1)
我想......
window.onbeforeunload = function(e) {
if (document.getElementById('cbOrderSpareCustomer').selectedIndex > 0) {
if (!confirm('Are you sure')) {
return false;
}
}
}
答案 2 :(得分:1)
按照以下步骤进行此操作
onchange
属性添加到服务端的组合框:
<select id="cbOrderSpareCustomer" onchange="setDirty()">
将您的javascript定义如下
var isDirty = true;
function setDirty() {
isDirty = true;
}
window.onbeforeunload = function () {
if (isDirty) {
return confirm('Your unsaved changes will be lost');
}
}
答案 3 :(得分:0)
如果你正在使用JQuery
<script type="text/javascript">
$(window).bind('beforeunload', function () {
if ($("select[name='cbOrderSpareCustomer'] option:selected").index() > 0) {
return 'Your data will be lost.';
}
});
</script>
您不希望其他方式返回true或仍然会提示(至少IE提示)
答案 4 :(得分:-1)
我的解决方案:
<script type="text/javascript"
function setDirty() {
window.onbeforeunload = function () {
return 'The data will be lost if you leave this page!'
}
}
</script>
使用属性onCange =&#34; setDirty()&#34;添加到下拉列表中。
感谢大家的帮助!