跳转到内容

XForms/离开时警告

来自维基教科书,开放世界中的开放书籍

示例程序

[编辑 | 编辑源代码]

防止用户从未保存的数据离开时丢失表单数据

[编辑 | 编辑源代码]

将此代码添加到 global.js

<script type="text/javascript">
        // adding a gmail style function to stop the user from moving away from the page..
        function unloadMessage(){message = "This form has not yet been submitted to the database\nAll data will be lost."
         return message;}
        function setBunload(on){window.onbeforeunload = (on) ? unloadMessage : null;}
        setBunload(true);
</script>

Mozilla 页面 [1]

IE 手册 [2]

将 xf:load 操作与 xforms-value-changed 事件结合使用,以调用包含 setBunload(true) 的“脏”函数。

同样,在提交中使用 load 操作来调用包含“setBunload(false)”的“干净”函数。

function dirty() {
    setBunload(true);
}
function clean() {
    setBunload(false);
}
This one goes in your "submission" element:
<xf:load resource="javascript:clean()" ev:event="xforms-submit-done"/>

and this 
<xf:load resource="javascript:dirty()" ev:event="xforms-value-changed"/>
goes somewhere in the form  - place it at the body-level to capture all change events, or nest it within a more appropriate container.

参考文献

[编辑 | 编辑源代码]

此示例取自 2007 年的 Alex Bleasdale。


有关页面卸载函数的 Microsoft 文档

下一页: 图形查看器 | 上一页: 自定义控件
主页: XForms
华夏公益教科书