HTML表单和Javascript确认
-
20-09-2019 - |
题
我在与提交表单和Javascript确认的问题。基本上,“提交”按钮被按下时以下JavaScript被调用。
function confirmation() {
var answer = confirm("Are you sure you wish to edit?")
if (answer)
{
window.location = "#editform2";
}
}
然而,当我打的取消而不是确定,JavaScript的执行正确的,因为我看地址栏,并没有更新到#editform2。形式,但是,仍然提交。这似乎刷新页面。下面是来自形式的相关部分:
//Form is encoded in PHP
<form method=\"post\">
//Form is in here
<input type=\"submit\" value=\"Edit\" onclick=\"confirmation()\">
所以形式也不知道到哪里去,它只是刷新页面,该页面恰好是处理器为好。因此,它的处理,即使我点击了取消和JavaScript应该保持它在同一页上。除了移动处理到不同的页面,我有什么办法呢?
解决方案
它的工作原理是这样,因为它是透过按钮的形式在任何情况下提交的。分配ID的形式和改变输入类型:
<form method="post" id="formid">
<input type="button" value="Edit" onclick="confirmation()">
和呼吁点击此功能:
function confirmation() {
var answer = confirm("Are you sure you wish to edit?")
if (answer)
{
document.getElementById("formid").submit();
}
}
其他提示
不要使用提交按钮的onclick事件,使用这个表单的onsubmit事件:
document.forms[0].onsubmit = function () {
return confirm("Are you sure you wish to edit?");
}
您可能需要一个id属性添加到您的形式来识别它。
保持事件上的JavaScript代码结合;不上你的HTML内嵌属性,使你的代码更maintanable和易于调试。
尝试:
return answer;
在函数的末尾,确保的onclick方法返回此。像这样:
<input type="submit" value="Edit" onclick="return confirmation()">
这将使该函数返回false,形式是不予以公布。
不隶属于 StackOverflow