![](/img/trans.png)
[英]Javascript form validation returning false, but the form still submits
[英]JavaScript Form Validation Still Submits Form on 'False'
如上所述的問題。 由於公司政策的原因,我使用的是舊版瀏覽器(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
(您始終無法正確拼寫)是非標准的,因此不應使用。
您使用的是1990年代風格的固有事件屬性,而不是addEventListener
,因此:
return false;
如果您使用的是addEventListener
那么您將:
event_object.preventDefault();
其中event_object
是事件處理函數的第一個參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.