Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript正确验证表单。?_Javascript_Html_Forms - Fatal编程技术网

如何使用javascript正确验证表单。?

如何使用javascript正确验证表单。?,javascript,html,forms,Javascript,Html,Forms,我正在尝试使用javascript验证表单,下面是我的代码 <script type="text/javascript"> function prevSubmit(){ var oForm = document.forms[0]; var pass1= oForm.elements["passwd"]; var pass2=oForm.elements["repasswd"]; var flag = 1;

我正在尝试使用javascript验证表单,下面是我的代码

    <script type="text/javascript">
    function prevSubmit(){
        var oForm = document.forms[0];
        var pass1= oForm.elements["passwd"];
        var pass2=oForm.elements["repasswd"];
        var flag = 1;
        if (pass1.value.length>16) {
            document.getElementById("passError").innerHTML = "password may atleast 16 chars";
            flag = 0;
        }
        else
            document.getElementById("passError").innerHTML = "";

        if(pass1.value<=16 && pass1.value!=pass2.value)
        {
            document.getElementById("passError").innerHTML = "password must be same";
            flag = 0;
        }
        else
            document.getElementById("passError").innerHTML = "";
        return flag;
    }


</script>

函数prevSubmit(){
形式变量=document.forms[0];
var pass1=形式元素[“passwd”];
var pass2=oForm.elements[“repasswd”];
var标志=1;
如果(pass1.value.length>16){
document.getElementById(“passError”).innerHTML=“密码至少可以包含16个字符”;
flag=0;
}
其他的
document.getElementById(“passError”).innerHTML=“”;
if(pass1.valuejust
“returnfalse”
来自javascript方法

<input type="submit" class="button" value="sign up" onclick="javascript:return myFunc();"/>

function myFunc()
{
return false;
}

函数myFunc()
{
返回false;
}

这是如何防止表单提交的基本示例,如果我们返回false,那么浏览器/javascript引擎将阻止点击事件的进一步传播并防止提交。

使用
true
false
作为
标志的值,而不是
1
0
。必须返回
false
为了防止提交,其他任何操作都允许提交。

首先,此错误消息毫无意义

password may atleast 16 chars
其次,您的第二次错误检查是错误的

if(pass1.value<=16 && pass1.value!=pass2.value)

正如其他人所建议的,使用真/假,而不是1和0作为真实值。

我同意Barmar和epascarello的答案

国际单项体育联合会的条件应以以下方式实施:

var oForm = document.forms[0];
var pass1= oForm.elements["passwd"];
var pass2=oForm.elements["repasswd"];
var ctrlError = document.getElementById("passError");

if (pass1.value.length < 16) {
    ctrlError.innerHTML = "Password must be at least 16 characters long.";
    return false;
}
else if (pass1.value != pass2.value) {
    ctrlError.innerHTML = "Passwords do not match.";
    return false;
}
else {
    ctrlError.innerHTML = "";
    return true;
}
var-oForm=document.forms[0];
var pass1=形式元素[“passwd”];
var pass2=oForm.elements[“repasswd”];
var-ctrlError=document.getElementById(“passError”);
if(pass1.value.length<16){
ctrlError.innerHTML=“密码长度必须至少为16个字符。”;
返回false;
}
else if(pass1.value!=pass2.value){
ctrlError.innerHTML=“密码不匹配。”;
返回false;
}
否则{
ctrlError.innerHTML=“”;
返回true;
}

将其移动到onclick事件的错误建议!是的,非常糟糕,简单性总是不好的。向初学者做简单的示例总是不好的。嗯……还有一件事,这个表单永远不会提交使用
javascript:
是非常糟糕的建议,表明你有初学者的技能。你知道
javascript的目的是什么吗pt:
位于onclick?inline Js中。这相当于在html之间写入脚本标记。请阅读:不要使用1或0作为标志…这无助于防止提交使用
true
false
如果OP不希望两条错误消息都显示出来,那么之前的检查将捕获该错误,而不是需要。
if (pass1.value!=pass2.value)
var oForm = document.forms[0];
var pass1= oForm.elements["passwd"];
var pass2=oForm.elements["repasswd"];
var ctrlError = document.getElementById("passError");

if (pass1.value.length < 16) {
    ctrlError.innerHTML = "Password must be at least 16 characters long.";
    return false;
}
else if (pass1.value != pass2.value) {
    ctrlError.innerHTML = "Passwords do not match.";
    return false;
}
else {
    ctrlError.innerHTML = "";
    return true;
}