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