Javascript 表单验证

标签 javascript html

我如何让用户知道“如果他们尝试关闭浏览器窗口,还有剩余的更改要保存在表单上?”
我有一个包含几个字段的表单,现在如果用户更改了一些字段并单击浏览器窗口上的关闭按钮,我的脚本应该提醒他未保存的更改。我该如何实现?我已经进行了基本的表单验证,但似乎无法想到 window.close() 事件的解决方案。任何示例链接都会有所帮助。

最佳答案

那么你可以使用正文 onbeforeunloadonunload

<body onBeforeUnload="return(confirm('unsaved stuff'))">

以前从未使用返回来停止页面卸载,但它应该可以工作。

更新:

在网页的标题中使其成为全局变量:

<script type="text/javascript">
var formData = [];
function saveForm(){
    var data = [];
    for(var index = 1; index <= 3; index++){
        data [index - 1] = document.getElementById("textfield_" + index).value;
    }
    return(data);
}

function unsavedData(){
    var newFormData = saveForm();
    for(var index = 0; index < 2; index++){
        if(formData[index] != newFormData[index]){
            return(confirm("Unsaved data, do you really want to exit?"));
        }
    }
    return(true);
}
</script>

在正文中(当然):

<body onBeforeUnload="return(unsavedData())">
...
<form ... onSubmit="formData = saveForm()">
<input type="text" id="textfield_1">
<input type="text" id="textfield_2">
<input type="text" id="textfield_3">
/*form submit button*/
</form>

关于Javascript 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6209346/

相关文章:

javascript - 使用 for 循环解析 JavaScript 中的 JSON

javascript - 标签之间的 CSS 样式空间

javascript - 如何从变量动态调用工厂方法?

javascript - JQuery 复制输入值,跨度内有多个空格

javascript - 使用 JavaScript 在表中添加和删除行

jquery - 将 HTML 字符串转换为 HTML DOM,而不加载/执行脚本/图像?

php - 具有相同名称的多个表单数据

javascript - 为什么 'focus-within' 在 Safari 中不起作用

javascript - AngularJS 表单,检查有效性

javascript - HTML 按钮没有点击