0

我在验证学生证时遇到问题,它需要 10 个数字,我遇到的问题是当我输入有效的学生证时,它仍然返回 false。请帮我检查一下mycoding,非常感谢。

我的学生 ID 示例 =“1101106363”

if ((document.appsub.id.value == "") || !(isNaN(document.appsub.id.value)) || (document.appsub.id.value.length < 11))
    {
        alert("Please enter the correct Student ID");
        document.appsub.id.focus();
        return false;
    }

更新:[链接] http://jsfiddle.net/rVswq/1/

4

5 回答 5

2

您需要使用document.getElementById方法正确选择元素。

var el = document.getElementById("yourid");
if (!(isNaN(el.value)) || (el.value.length < 11))
    {
        alert("请输入正确的学生证");
        el.focus();
        返回假;
    }
于 2013-08-20T10:44:46.187 回答
1

这里有些奇怪。您正在检查值是否为空,或者它是否是数字(如果值不是数字,isNaN 返回 true,如果放置 !isNaN,如果值是数字,则结果为 true),或者长度是否较低到 11。

如果你想确保插入的值不为空,一个数字和它的长度小于 11 你应该写

if ((document.appsub.id.value == "") || isNaN(parseInt(document.appsub.id.value)) || (document.appsub.id.value.length > 10))
于 2013-08-20T10:50:39.520 回答
0

在我看来,您不需要 NOT 运算符

if ((document.appsub.id.value == "") || isNaN(document.appsub.id.value) ||    (document.appsub.id.value.length < 11))
{
    alert("Please enter the correct Student ID");
    document.appsub.id.focus();
    return false;
}
于 2013-08-20T10:43:24.847 回答
0

你的 IF 语句是错误的。你要:

if ( (document.appsub.id.value == "") || (isNaN(document.appsub.id.value)) || document.appsub.id.value.length < 11) )
    {
        alert("Please enter the correct Student ID");
        document.appsub.id.focus();
        return false;
    }
于 2013-08-20T10:44:10.340 回答
0

您的 if 语句将捕获长度小于或等于 10 的学生 ID。

代替像 10 这样的长度进行测试

于 2013-08-20T10:54:54.487 回答