我希望在用户提交表单之前得到用户的确认。这样可以防止意外发布表单,这可能是不完整或不正确的。
这是我的表单元素:
<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
,则不会阻止表单发布。
如何更正此问题,以便用户不会意外提交表单?
以下是我尝试实施的功能的完整说明:
使用案例 - “更新详情”
答案 0 :(得分:10)
不是返回0和1,而是返回true
和false
。您实际上可以将功能缩短为:
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。