我想让我的javascript文件验证输入“name”。我有一个允许字符设置为/^[A-Za-z]+$/
的正则表达式。
但是,每当函数验证字符时,它都不会显示任何内容。我一直在关注示例here,但它仍然无效。这是我的代码:
function validateForm(){
message = validateName();
window.alert(message);
}
function validateName(){
name = document.forms["supportForm"]["name"].value;
allowedChars = /^[A-Za-z]+$/;
if(name.value.match(allowedChars))
{
error = "You're Cool!";
alert(error);
}
}
非常感谢任何帮助!
答案 0 :(得分:3)
var name
已经定义为document.forms["supportForm"]["name"].value;
的值
然后使用name.value
,这没有任何意义。当您尝试在变量中获取子值时。相反,你想要name.match(allowedChars)
另外,我建议您使用console.log
来测试输入错误修正。
function validateForm(){
message = validateName();
window.alert(message);
}
function validateName() {
name = document.forms["supportForm"]["name"].value;
console.log(name); //So you know it's picking up the value
allowedChars = /^[A-Za-z]+$/;
if(name.match(allowedChars)) {
error = "You're Cool!";
alert(error);
}
}
答案 1 :(得分:0)
当引用已经引用了属性的变量时,您不需要再次引用该属性。
value
和document.forms["supportForm"]["name"].value;
if(name.value.match(allowedChars))
处理此问题的正确方法是:
function validateForm(){
message = validateName();
window.alert(message);
}
function validateName(){
name = document.forms["supportForm"]["name"].value;
allowedChars = /^[A-Za-z]+$/;
if(name.match(allowedChars))
{
error = "You're Cool!";
alert(error);
}
}