我有一些javascript代码:
$(this).keyup(function () {
if(regex.test(this.value))
this.style.backgroundColor=config.validColor;
else
this.style.backgroundColor=config.invalidColor;
});
这应该为用户提供关于他或她正在输入的字段的视觉提示,但是,这只是在每个按键上翻转颜色。
答案 0 :(得分:0)
keyup event的回调函数应为eventObject parameter。这会公开提供which property的information 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);
});
也许你应该粘贴正则表达式代码以及你想要实现的目标。