表单提交后的成功消息

3
我有一个表单来获取用户的详细信息。一旦表单提交,页面会加载。我想在页面加载后显示成功消息。
function Formvalidation(){
var validate = validateForm();
if( validate == true ){
    alert("success");
}
else{
    alert("not success");
}
return validate;
}

这是我现在正在使用的脚本。它会在页面重新加载之前发出警报。我想在那之后执行返回函数。


嘿,你试过onClick方法了吗? - Nitin Bisht
@NitinBisht 是的,我试过了。它没有起作用。我使用了cookies来在页面加载后显示成功消息。 - Ajay Viknesh
4个回答

0
使用Bootstrap Notify:http://bootstrap-notify.remabledesigns.com/ 还有这个脚本:
    Alert = {
      show: function(type, title, message, url, delay) {
        $.notify({
            title: title,
            message: message,
            url: url,
            target: "_blank"
        },{
            type: type,
            showProgressbar: false,
            placement: {
                from: "bottom",
                align: "center"
            },
            delay: delay
        });
      },
    }

如果页面重新加载,您可以使用PHP调用消息:

echo '<script>Alert.show("success", "", "Form submit success!", "", 3000);</script>';

谢谢,但是警报没有起作用。我使用了cookies来显示消息。 - Ajay Viknesh

0

是否考虑将用户重定向到另一个页面以显示成功/失败,并在该页面上显示结果?


2
你好,感谢回复。但是我不希望用户重定向到不同的页面。顺便说一下,我已经使用 cookies 解决了这个问题。 - Ajay Viknesh

0
我注意到你在评论中提到你使用了cookies。你也可以使用localStorage,我认为这种方法对于静态网站来说更友好(而且更简单)。
Formvalidation函数中,你可以将一个成功值设置到localStorage中,然后当新页面加载时,它会检查该成功值是否为true,显示成功消息,然后从localStorage中删除成功值。
以下是一个示例:
function Formvalidation(){
var validate = validateForm();
if( validate == true ){
    alert("success");
}
else{
    alert("not success");
}

// Add this, make sure all localStorage values are strings
localStorage.setItem("formSuccess", JSON.stringify(true));

return validate;
}

然后,在您的新页面/重新加载的页面上,使用窗口加载事件监听器来检查formSuccess是否为true:
window.addEventListener("load", (e) => {
  const isSuccessful = JSON.parse(localStorage.getItem("formSuccess"));
  
  if (isSuccessful) {
    console.log("submission successful!");
  }

});

-1
如果你想在用户点击提交按钮时调用 Formvalidation(),那么 onsubmit="return Formvalidation()" 应该简单地改为 onsubmit="Formvalidation()"

我在脚本中有几个需要检查的验证,因此我使用了return。 - Ajay Viknesh
@AjayViknesh 如果你想要在验证完成之前推迟提交,你应该使用 preventDefault() 直到这种情况发生... - oldboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接