我在尝试使用JavaScript检查文本框是否仅包含a-z 0-9值时遇到问题。
我的页面上有一个文本框:
<input type="text" id="first_name" class="first_name" value="">
我正在使用以下JavaScript函数来检查我的文本框:
// Function to check letters and numbers
function alphanumeric(inputtxt)
{
//alert(inputtxt);
var letters = "/^[0-9a-zA-Z]+$/";
if(inputtxt.value.match(letters))
{
alert('accepted');
}
else
{
alert('Please input alphanumeric characters only');
return false;
}
}
我正在调用我的函数:
var test = alphanumeric(document.getElementById("first_name").value);
但是没有发生任何事情。
如果我在我的字母数字函数中警告'inputtxt',它会返回我在文本框中的值,所以我知道有一个值要检查,但它似乎不会从那里继续。
有谁知道我哪里出错了?
我试图用JavaScript(没有jQuery)来做这件事。
答案 0 :(得分:14)
一些问题:
match
代替test(不是错误,但效率最高)inputtxt.value
,但inputtxt
仍然是值你可以用这个:
function alphanumeric(inputtxt) {
var letters = /^[0-9a-zA-Z]+$/;
if (letters.test(inputtxt)) {
alert('accepted');
return true;
} else {
alert('Please input alphanumeric characters only');
return false;
}
}
答案 1 :(得分:3)
您正在使用.value
两次:
document.getElementById("first_name").value
和if(inputtxt.value.match(letters))
删除其中一个。
答案 2 :(得分:0)
您正在使用value
两次:
alphanumeric(document.getElementById("first_name").value);
和
if(inputtxt.value.match(letters))
这基本上展现了
if(document.getElementById("first_name").value.value.match(letters))
这是没有意义的,因为String
对象value
没有属性value
,而undefined
实体[...]value.value
没有属性match()
(调试控制台应该告诉你多少。)
enter code here
var test = alphanumeric(document.getElementById(“first_name”));