Javascript表单验证oninput
我试图通过一些表单验证来提高我的javascript技能。为什么我的代码不起作用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"
<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])
^
当thisthis.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
块指定为空。因此,循环应该中断,因为至少找到了一个数字。