如上所述的问题。由于公司政策,我使用旧浏览器(IE8和FF8)。我无法解决这个问题,但我的研究表明这不是问题...(是的,是的)
我在Apache 2.4.9上使用PHP 5.5.12和MySQL(5.6.17)后端。该网站是一个CMS,已经有几年有机发展。
我有一个添加,更新和删除帐户的用户管理页面。但是,无论我做了什么,表格都会提交。最糟糕的例子是如果管理员选择删除一个帐户,当被问到“你真的想要删除吗?”时并取消,它仍然被删除!我已经复制了我的JavaScript和以下PHP / HTML的摘录。
我尝试对JavaScript进行一些更改,例如在设置window.event.returnValue后返回,但我总是得到相同的结果。我已经读了好几天了,一直空白!我试过onSubmit而不是onClick,但它确实不适合网站,除了它也没有用。
我开始认为浏览器的时代就是问题。我在家用开发盒上用Safari运行这个很好。任何帮助将不胜感激。
的JavaScript
<script language="JavaScript">
function frmVerify(check, loginid, login) {
if (check == 'add') {
Uname=add_user.login_name.value;
Pass1=add_user.password.value;
Pass2=add_user.password2.value;
if(Uname=='') {
alert('A user name must be assigned to an account.');
window.event.returnValue=false;
}
if(Uname == login) {
alert('You cannot create an account with your own username (' + login + ')');
window.event.returnValue=false;
}
if(Pass1 != Pass2) {
alert('Entered passwords are not the same! Make sure the password and verification fields match.');
window.event.returnValue=false;
}
if(Pass == '') {
alert('Assigning a password is required when creating an account!');
window.even.returnValue=false;
}
} else if(check == 'update') {
Uname=eval('edU_'+loginid+'.login_name.value');
Pass1=eval('edU_'+loginid+'.password.value');
Pass2=eval('edU_'+loginid+'.password2.value');
if(Uname == '') {
alert('A user name must be assigned to an account.');
window.event.returnValue=false;
}
if(Pass1 != Pass2) {
alert('Entered passwords do not match! Make sure the passowrd and verification fields match.');
window.event.returnValue=false;
}
} else if(check == 'del') {
Uname=eval('edU_'+loginid+'.login_name.value');
if(Uname == '') {
request = 'Do you really wish to DELETE this user account?';
} else {
request = 'Do you really wish to DELETE user: ' + Uname + '?';
}
var answer = confirm(request);
if(answer) {
window.event.returnValue=true;
} else {
window.event.returnValu=false;
}
}
}
</script>
在我有的PHP / HTML中
echo "<form name=\"delU_$login_id\" id=\"delU_$login_id\" mehtod=\"POST\">";
echo "<input type=\"image\" src=\"./images/delete.png\" value=\"Delete\" onClick=\"return frmVerify('del', '$login_id', '$username');\">";
echo "</form>";
答案 0 :(得分:3)
window.event.returnValue
(无论如何你总是没有正确拼写)是非标准的,不应该使用。
您使用的是20世纪90年代风格的内在事件属性,而不是addEventListener
,所以只需:
return false;
如果您是using addEventListener
,那么您会:
event_object.preventDefault();
其中event_object
是事件处理函数的第一个参数。