即使验证失败,表单也会提交

时间:2016-04-29 08:01:38

标签: javascript forms

我希望用户名和密码为#whatever { text-align:left; } &分别admin以便成功提交表格。但即使用户名和密码与admin& admin

admin


function validateOnSubmit() { console.log("Called!"); var isValid = true; document.getElementById("alert").className = ""; if (document.getElementById("login-password").value.length <= 4) { isValid = false; document.getElementById("alert").className = "doWiggle"; setTimeout(function(){ document.getElementById("alert").className = document.getElementById("alert").className.replace('doWiggle', ''); }, 300); }else { if(document.getElementById("login-password").value != "admin" && document.getElementById("username").value != "admin") { alert("Wrong Password!"); isValid = false; } } console.log(isValid); return isValid; }

HTML

2 个答案:

答案 0 :(得分:1)

您需要这样调用CREATE OR REPLACE PACKAGE BODY POINT_NET.tkzpwfsync IS PROCEDURE wait (condition VARCHAR2) IS x INTEGER; BEGIN x := 0; EXECUTE IMMEDIATE 'select count(*) from dual where ' || condition INTO x; IF (x != 1) THEN raise_application_error (-20001, 'Condition ' || condition || ' is not met.'); END IF; END; END; / 的方式:

validateOnSubmit()

请注意<form onsubmit="return validateOnSubmit();"> 事件的return。最好的猜测是你会忘记onsubmit关键字,它不相同,并提交return

我也看到你正在使用<form>。最好用Element.classList替换它:

className

或者,如果你想切换它,你可以使用:

element.classList.add(); // Similar to adding class.
element.classList.remove(); // Similar to removing class.

<强>逻辑

您使用的逻辑是错误的:

element.classList.toggle();

上述逻辑不起作用。使用以下内容:

if (document.getElementById("login-password").value != "admin" && document.getElementById("username").value != "admin") {

这里应该是if (document.getElementById("login-password").value != "admin" || document.getElementById("username").value != "admin") { 运营商。目前,如果||username中的任何一个是正确的,则表单提交,这是错误的。

答案 1 :(得分:0)

您需要确保没有js错误。如果发生这种情况,可以忽略你的js函数。

如上所述,必须以某种方式调用validateOnSubmit()。适当的方式是:

<form onsubmit="return validateOnSubmit();">