【问题标题】:Javascript to check validation and change textbox color用于检查验证和更改文本框颜色的 Javascript
【发布时间】: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


【解决方案1】:

$('tbName') 可能不是有效的选择器。

您的意思是选择一个班级吗?

$(.tbName')

id=tbName 的元素呢?

$('#tbName')

另外,您为什么需要这样做?这将无法在函数外部访问,因为它是传递给函数的局部变量(通过其参数)

args.IsValid = is_valid;

你可以做一个简单的返回:

function ValidateTextBox() {
    var regex = /^[a-z A-Z]+$/;
    return regex.test($('#tbName').val());
}

【讨论】:

  • 哦,我对 javascript 太陌生了...我该如何选择具有该 ID 的文本框?它显示在这里:
  • “另外,你为什么需要这样做?这将无法在函数外部访问,因为它是传递给函数的局部变量(通过其参数)”我需要检查内部查看它是否匹配的方法,所以我可以更改文本框的颜色。不知道您必须在控件 ID 之前执行“#”。谢谢!
  • 我明白了,$ 符号是干什么用的?是告诉javascript下面这行使用了JQuery方法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多