gpt4 book ai didi

javascript - 基本的 javascript 表单验证 - 使用相同的函数验证相同的输入类型

转载 作者:行者123 更新时间:2023-12-03 02:35:22 24 4
gpt4 key购买 nike

我一直使用 jQuery validate() 来处理表单,但最近在升级到我们的 XMPie 软件后遇到了问题(我们进行有针对性的通信)。

新版本的 XMPie 需要 jQuery 1.10.2,该版本不受 validate() 支持,因此我手动进行验证。

我可以通过为每个输入编写单独的函数来轻松进行验证,但这意味着至少要重写部分代码以针对特定的输入名称或 ID。

我想知道的是为什么我不能为特定输入类型(例如简单的文本字段)编写通用函数并让输入在 focusout() 上调用该函数,并将其自身作为参数传递?

如果我有两个文本输入,“fullName”和“userName”,为什么我不能使用

$(document).ready(function () {
var inputName = "";
var inputValue = "";
var inputAlert = "";
$("input").focusout(function () {
inputIdentify(this);
console.log(inputName);
inputGetValue(this);
console.log(inputValue);
if (this.type == "text") {
console.log("YES");
textValidate(inputName, inputValue);
}
});

function inputIdentify(theInput) {
inputName = theInput["name"];
console.log(inputName);
return inputName;
}

function inputGetValue(theInput) {
inputValue = theInput["value"];
return inputValue;
}

function textValidate(theInput, inputValue) {
console.log(theInput,inputValue);
var letters = /^[A-Za-z ]+$/;
if (inputValue.match(letters)) {
$(theInput).addClass("correct");
return true;
} else {
$(theInput).removeClass("correct");
$(theInput).addClass("incorrect");

// alert('Username must have alphabet characters only');
$(inputName).focus();
return false;
}
}
});

删除并添加简单的 css 类(彩色边框)来指示问题字段?

感谢和问候,

马尔科姆

最佳答案

您没有将正确的参数传递给 textValidate()。您将 inputName 作为 theInput 传递,但 textValidate() 使用 $(theInput) 访问输入元素。您应该将 this 作为该参数传递:

textValidate(this, inputValue);

此外,您对全局变量的使用是糟糕的设计。由于 inputIdentify()inputGetValue() 返回值,因此您应该将返回值分配给局部变量,而不是让这些函数设置全局变量。

   $("input").focusout(function () {
var inputName = inputIdentify(this);
console.log(inputName);
var inputValue = inputGetValue(this);
console.log(inputValue);
if (this.type == "text") {
console.log("YES");
textValidate(this, inputValue);
}
});

function inputIdentify(theInput) {
var inputName = theInput["name"];
console.log(inputName);
return inputName;
}

function inputGetValue(theInput) {
var inputValue = theInput["value"];
return inputValue;
}

关于javascript - 基本的 javascript 表单验证 - 使用相同的函数验证相同的输入类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48553306/

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