Javascript表单验证oninput

Javascript表单验证oninput,javascript,Javascript,我试图通过一些表单验证来提高我的javascript技能。为什么我的代码不起作用 <input type="password" id="psw" /> <p id="demo" ></p> <script type="text/javascript" > psw.oninput = function(event) { myArray = ["1", "2","3","4","5","6"

我试图通过一些表单验证来提高我的javascript技能。为什么我的代码不起作用

    <input type="password" id="psw" />
    <p id="demo" ></p>


     <script type="text/javascript" >
        psw.oninput = function(event) {
        myArray = ["1", "2","3","4","5","6","7","8","9"];

    for(x=0; x<myArray.length; x++){
        if(this.value.includes(myArray[x]){
        demo.innerHTML = "password cannot include               
       a number";
    } else{
        demo.innerHTML = "";
    }

 </script>

psw.oninput=功能(事件){ myArray=[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”]; 对于(x=0;x),您的代码存在一些问题 您试图错误地绑定
输入
事件

psw.oninput = function(event)
    ^
 demo.innerHTML = "password cannot include               
a number";                                ^
^
使用函数获取元素
psw

document.getElementById('psw')
         ^
您分配的字符串不正确

psw.oninput = function(event)
    ^
 demo.innerHTML = "password cannot include               
a number";                                ^
^
缺少圆括号

if(this.value.includes(myArray[x])
                                  ^
当this
this.value.includes(myArray[x])
为true时,需要中断循环

带有这些修复的代码片段

document.getElementById('psw').addEventListener('input',函数(事件){
var myArray=[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”];
对于(var x=0;x

这将起作用

只有当输入数字9时,文本才会显示,如果您键入任何其他数字,文本不会显示。为什么

如果输入
5
,则会插入
密码,密码不能包含数字,因为它会通过循环,而且字符串中不存在
6
,因此会清除警报


var psw=document.getElementById(“psw”); var demo=document.getElementById(“demo”); psw.oninput=功能(事件){ var isnumberpresent=假; myArray=[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”];
对于(var x=0;x这是一个非常基本的改进,但是如果你想提高你的JavaScript技能,考虑使用正则表达式作为某人建议。

<input type="password" id="psw" oninput="validate(this.value)" />
        <p id="demo" ></p>

        <script type="text/javascript" >
            function validate(password) {
                var demo = document.getElementById('demo');
                var myArray = ["1", "2","3","4","5","6","7","8","9"];
                for(x=0; x<myArray.length; x++){
                    if(password.includes(myArray[x])){
                        demo.innerHTML = "password cannot include a number";
                        break;
                    } else{
                        demo.innerHTML = "";
                    }
                }
            }
        </script>

函数验证(密码){ var demo=document.getElementById('demo'); var myArray=[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”];
对于(x=0;x此代码正在运行。请关闭if括号。使用适当的编辑器编写类似记事本++的代码

    <!DOCTYPE html>
    <html>
    <body>
    <p>Write something in the text field to trigger a function.</p>
    <input type="text" id="psw"/>
    <p id="demo"></p>
    <script>
          var x;
            psw.oninput = function myfunc(){
         var myArray = ["1", "2","3","4","5","6","7","8","9"];
 var ele=document.getElementById("psw").value;
        for(x=0; x<myArray.length; x++){
            if(myArray.includes(ele)){
            demo.innerHTML = "password cannot include a number";
        } 
        else { demo.innerHTML = ""; }
    }
    }
    </script>
    </body>
    </html>

在文本字段中写入一些内容以触发函数

var x; psw.oninput=函数myfunc(){ var myArray=[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”]; var ele=document.getElementById(“psw”).value;
对于(x=0;x
为什么我的代码不工作?
如何工作?请先解析并格式化您的代码?检查开发人员控制台是否存在可能的错误,并尝试使用断点和监视来查看您的代码在内部到底做了什么。首先,您的代码不工作,因为您没有
标记,其次,什么是
psw.oninput
psw
定义在哪里?最后,您可以使用regex来提高性能。它正在工作,只是不像预期的那样…谢谢您的回答。您能解释一下为什么需要循环中断吗?有点困惑@MosesChukwudiNwigberi,因为循环继续并检查下一个数字,所以当下一个数字中的一个不包括时,则
else
块指定为空。因此,循环应该中断,因为至少找到了一个数字。