Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在向导窗体中设置标志以允许提交/覆盖其他功能_Javascript - Fatal编程技术网

Javascript 如何在向导窗体中设置标志以允许提交/覆盖其他功能

Javascript 如何在向导窗体中设置标志以允许提交/覆盖其他功能,javascript,Javascript,嗨,我有一个很长的表单,它被分割成一个向导。为了防止用户点击浏览器后退按钮并丢失数据,我有以下几点: window.onbeforeunload=函数(){ return“回击将导致丢失所有表单数据。”; }; 如何插入标志并应用到最后一步,以便正确提交表格? 谢谢,您可以在最后一步将一个变量设置为true并进行检查,如下所示: var okToSubmit = false; window.onbeforeunload = function() { if(!okToSubmit) retu

嗨,我有一个很长的表单,它被分割成一个向导。为了防止用户点击浏览器后退按钮并丢失数据,我有以下几点:

window.onbeforeunload=函数(){ return“回击将导致丢失所有表单数据。”; };

如何插入标志并应用到最后一步,以便正确提交表格?
谢谢,

您可以在最后一步将一个变量设置为true并进行检查,如下所示:

var okToSubmit = false;
window.onbeforeunload = function() { 
  if(!okToSubmit) return "Hitting back will cause you to lose all form data."; 
};
//set okToSubmit = true; on the last step

如果没有您当前的代码,我无法确切地说在何处插入此代码,但无论您的脚本移动到最后一步,请添加
okToSubmit=true在那里。

效果不错,尼克,谢谢。如果您在浏览器中回击、在浏览器中刷新或在导航中的其他页面,是否有办法使此项仅适用于“提交”,但在最后一步仍会弹出警报?@Dirty-当然!只需向提交按钮添加一个单击处理程序来设置变量,它将在
窗口之前执行。onbeforeunload
执行:)类似这样的操作:
document.getElementById('submitButtonID')。onclick=function(){onToSubmit=true;}我是否仍然leve okToSubmmit=True;在wizard js函数中?@Dirty-不,只有提交处理程序…仅在您希望单击并禁用消息/提示的位置,无论您将其设置为
true
,消息都不会再次显示,听起来您只想在提交时显示。不过,我单独添加了它,这是错误的。将它添加到if(!…)之上是有效的。我将“{onToSubmit=true;};更改为{okToSubmit=true;}我认为这是一个打字错误。非常感谢Nick,这现在很完美!