2010-02-26 84 views
0

我有一些JavaScript代碼,上面寫着:與現場驗證腳本問題

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

這應該提供的視覺提示用戶,約場,他或她打字的,然而,這只是翻轉每個按鍵的顏色。

+0

什麼時候應該觸發?這在很大程度上取決於你的正則表達式的樣子。 – 2010-02-26 07:00:47

回答

0

不知道該怎麼迴應test函數返回時,你可以嘗試這樣的:

$(this).keyup(function() { 
    if(!regex.test(this.value)) 
    this.style.backgroundColor=config.invalidColor; 
else 
    this.style.backgroundColor=config.validColor;   
}); 
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); 
}); 

也許你應該粘貼正則表達式代碼和你想要實現的東西。