字段验证脚本的问题

时间:2010-02-26 06:53:15

标签: javascript jquery

我有一些javascript代码:

$(this).keyup(function () {
  if(regex.test(this.value))
    this.style.backgroundColor=config.validColor;
else
    this.style.backgroundColor=config.invalidColor;
});

这应该为用户提供关于他或她正在输入的字段的视觉提示,但是,这只是在每个按键上翻转颜色。

3 个答案:

答案 0 :(得分:0)

keyup event的回调函数应为eventObject parameter。这会公开提供which propertyinformation about the keycode/character code that was pressed

您应该将其传递给测试,以查看按键是否有效。

答案 1 :(得分:0)

不知道test函数返回的响应,您可以尝试这样:

$(this).keyup(function () {
  if(!regex.test(this.value))
    this.style.backgroundColor=config.invalidColor;
else
    this.style.backgroundColor=config.validColor;        
});

答案 2 :(得分:0)

是的,它在很大程度上取决于你匹配的正则表达式。

您应该先尝试调试它:

(我将继续使用Sarfraz的代码)。

$(this).keyup(function () {
  if(!regex.test(this.value))
    this.style.backgroundColor=config.invalidColor;
    $('#debug').html('invalid color');
else
    this.style.backgroundColor=config.validColor;        
    $('#debug').html('valid color!');
});

此外,由于您使用的是jQuery,因此您应该更多地依赖它的“少写”理念。

$(this).keyup(function () {
  if(!regex.test(this.value))
    $(this).css('backgroundColor', config.invalidColor);
    $('#debug').html('invalid color');
else
    $(this).css('backgroundColor', config.validColor);
});

也许你应该粘贴正则表达式代码以及你想要实现的目标。