【发布时间】:2011-10-27 17:13:47
【问题描述】:
查看代码:
<script type="text/javascript">
function ValidateTextBox(source, args) {
var is_valid = false;
//Regex goes here
var regex = /^[a-z A-Z]+$/;
var check = regex.test($('tbName').val()); //Checks the tbName value against the regex
if (check == true) {
//If input was correct
is_valid = true;
}
else {
//If input is not correct
$("tbName").css(("background-color", "#A00000"), ("border-color", "#780000"));
}
args.IsValid = is_valid; //Returns validity state
}
</script>
我正在尝试检查文本框的输入,因此它是 a 和 z 以及 A 和 Z 之间的唯一字符,但即使在像“1245”这样的输入时它仍然返回 true。
这是为什么?
谢谢
【问题讨论】:
-
/^[a-z A-Z]+$/.test("1234")的值是false,问题不在于您的正则表达式。检查您传递给test()的值 -
尝试反转您的正则表达式以查找任何无效的内容:
/[^a-z A-Z]/和if (check) { invalid }。如果输入文本是多行的,现在你的正则表达式会中断。 -
我试图检查我传递的值,但它不能正常工作。我是否正确选择了控件?
-
好的,我设法通过以下方式检查输入: var test = $('#tbName').val();并且测试包含“未定义”。这是否意味着找不到控件?
-
对不起所有的 cmets,但我发现了问题。因为我使用的是母版页,实际的 id 是“ContentPlaceHolder1_tbName”。有没有更简洁的方法来选择控件并忽略占位符附录?
标签: javascript jquery asp.net validation client-side-validation