提交表格确认

时间:2012-02-01 11:02:49

标签: javascript forms confirm onsubmit

我希望在用户提交表单之前得到用户的确认。这样可以防止意外发布表单,这可能是不完整或不正确的。

这是我的表单元素:

<form action="manager.php?method=update&id=<?php echo $user->id;?>" onsubmit="return confirm_update();"  method="POST" id="user_update"> 

这会调用我的函数confirm_update()

function confirm_update()
{
  if(confirm("Do you wish to update details?"))
  {
    return 0;
  }
  else
  {
    return 1;
  }
}

该脚本存在的问题是,如果用户在JavaScript提示符中单击Cancel,则不会阻止表单发布。

如何更正此问题,以便用户不会意外提交表单?

以下是我尝试实施的功能的完整说明:

使用案例 - “更新详情”

  • 用户转到更新页面
  • 用户在表单字段中输入详细信息
  • 用户点击提交按钮
  • 出现确认消息
  • 如果选择“确定”按钮,请继续提交表单
  • 否则取消操作并留在当前页面

5 个答案:

答案 0 :(得分:10)

不是返回0和1,而是返回truefalse。您实际上可以将功能缩短为:

function confirm_update() {
    return confirm("Are you sure you want to submit?");
}

答案 1 :(得分:2)

你反过来这样做了!

if(confirm("Do you wish to update details?"))
{
    return 1;
}
else
{
    return 0;
}

话虽如此,您的代码可以缩短为一行:

return confirm("Hit OK to continue, Cancel to... cancel.");

答案 2 :(得分:1)

尝试:


function confirm_update() {
    if(confirm("Do you wish to update details?")) {
        return true;
    }
    else {
        return false;
    }
}

答案 3 :(得分:1)

我会默认返回false,这对我有用

<form action="manager.php?method=update&id=<?php echo $user->id;?>"  method="POST" id="user_update"> 
<input type='submit' onclick="return confirm('Do you wish to update details?');return false;"/>
</form>

答案 4 :(得分:1)

首先,您应该重新考虑您的方法。您应该使用javascript来防止这种情况发生,而不是询问用户是否想要提交可能不完整或无效的表单,即使用js执行客户端验证。你正在做的事情本质上是通过点击提交...

完成的

如果您想保留您的方法,则必须阻止提交按钮实际将数据提交到指定的操作,例如通过javascript将表单操作更改为“#”,然后如果单击确定则触发提交用你的js代码,例如通过使用XmlHttpRequest。