gpt4 book ai didi

JavaScript 表单验证仍然在 'False' 上提交表单

转载 作者:行者123 更新时间:2023-11-28 19:08:38 25 4
gpt4 key购买 nike

问题如上所述。由于公司政策,我正在使用旧版浏览器(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>";

最佳答案

window.event.returnValue(无论如何,您并不总是拼写正确)是非标准的,不应使用。

您使用的是 20 世纪 90 年代风格的内在事件属性,而不是 addEventListener,所以只需:

return false;
<小时/>

如果你是using addEventListener那么你会:

event_object.preventDefault();

其中 event_object 是事件处理函数的第一个参数。

关于JavaScript 表单验证仍然在 'False' 上提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31169034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com