HTML表单和Javascript确认

wai*_*933 4 javascript forms confirm webforms

我在提交表单和Javascript确认时遇到问题.基本上,按下"提交"按钮时会调用以下Javascript.

function confirmation() {
    var answer = confirm("Are you sure you wish to edit?")
    if (answer)
    {
        window.location = "#editform2";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我点击取消而不是ok时,Javascript正确执行,因为我看地址栏并且它没有更新到#editform2.但是,表格仍然提交.它似乎刷新了页面.以下是表单中的相关部分:

//Form is encoded in PHP
<form method=\"post\">
//Form is in here
<input type=\"submit\" value=\"Edit\" onclick=\"confirmation()\">
Run Code Online (Sandbox Code Playgroud)

所以表单不知道它在哪里,它只是刷新页面,而页面恰好也是处理器.所以即使我点击取消它也正在处理,Javascript应该保持在同一页面上.除了将处理移到另一页面外,我的解决方案是什么?

mck*_*k89 6

它的工作原理是这样的,因为它是一个sumbit按钮,表格在每种情况下都会提交.为表单分配一个id并更改输入类型:

<form method="post" id="formid">
<input type="button" value="Edit" onclick="confirmation()">
Run Code Online (Sandbox Code Playgroud)

并在点击时调用此函数:

function confirmation() {
    var answer = confirm("Are you sure you wish to edit?")
    if (answer)
    {
        document.getElementById("formid").submit();
    }
}
Run Code Online (Sandbox Code Playgroud)