gpt4 book ai didi

javascript - 在一个函数中验证多个表单域

转载 作者:可可西里 更新时间:2023-11-01 01:00:12 25 4
gpt4 key购买 nike

我有以下代码用于在字段中输入值时验证 for 字段(红色表示无效,绿色表示字段有效):

function FormValidation(){
var fn=document.getElementById("firstName").value;
if(fn == ""){
document.getElementById("firstName").style.borderColor = "red";
return false;
}else if (/^[0-9]+$/.test(document.getElementById("firstName").value)) {
document.getElementById("firstName").style.borderColor = "red";
return false;
}else if(fn.length <=2){
document.getElementById("firstName").style.borderColor = "red";
return false;
}else{
document.getElementById("firstName").style.borderColor = "#679f30";
}
}

其他字段也需要这些验证。

我尝试了一个 for 循环,但它无法像上面的代码对一个字段那样验证所有表单:

function FormValidation(){
var array = ["firstName", "middleName", "lastName"];
for(i=0; i < array.length; i++){
var fn=document.getElementById(array[i]).value;
if(fn == ""){
document.getElementById(array[i]).style.borderColor = "red";
return false;
}else if (/^[0-9]+$/.test(document.getElementById(array[i]).value)) {
document.getElementById(array[i]).style.borderColor = "red";
return false;
}else if(fn.length <=2){
document.getElementById(array[i]).style.borderColor = "red";
return false;
}else{
document.getElementById(array[i]).style.borderColor = "#679f30";
}
}
}

所以我的问题是我做错了什么吗?或者有没有一种方法可以在一个函数中验证多个表单,而不必一遍又一遍地编写相同的代码。

非常感谢任何帮助!

谢谢,艾尔

最佳答案

将 id 作为参数传递给函数并访问相关参数。因此,您不必一次又一次地编写整个代码,而是可以使用您的特定参数调用该函数。 function FormValidation(id){
var fn=document.getElementById(id).value;
if(fn == ""){
document.getElementById(id).style.borderColor = "red";
return false;
}else if (/^[0-9]+$/.test(document.getElementById(id).value)) {
document.getElementById(id).style.borderColor = "red";
return false;
}else if(fn.length <=2){
document.getElementById(id).style.borderColor = "red";
return false;
}else{
document.getElementById(id).style.borderColor = "#679f30";
}
}

Call the function with parameter as the id you need to validate. eg return FormValidation("firstName")

关于javascript - 在一个函数中验证多个表单域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29713423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com