2011-10-27 55 views
-1

退房代碼:JavaScript來檢查驗證和更改文本框的顏色

<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」這樣的輸入也是如此。

這是爲什麼?

由於

+2

的'價值/^[az AZ] + $ /。test(「1234」)'爲'false',問題不在你的正則表達式中。檢查你傳遞給test()的值是什麼? – millimoose

+0

嘗試顛倒你的正則表達式來找到任何無效的東西:'/ [^ a-z A-Z] /'和'if(check){invalid}'。如果輸入文本是多行的,那麼你的正則表達式就會中斷。 –

+0

我試圖檢查我傳遞的值,但它沒有正常工作。我是否正確選擇控件? – TheGateKeeper

回答

2

$('tbName')可能不是一個有效的選擇器。

您是否想要選擇課程?

$(.tbName') 

怎麼樣一個id = tbName

$('#tbName') 

另外,您爲什麼需要這樣做?這會不會是該功能的外部訪問,因爲它是傳遞給函數(通過其參數)的局部變量

args.IsValid = is_valid; 

你可以做一個簡單的返回:

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

哦,我是如此新的JavaScript ...我如何去選擇與該ID的文本框? 其如下所示: 的 TheGateKeeper

+0

我不認爲你可以做到這一點與服務器端ASP形式控件,因爲服務器將動態更改發送給客戶端的標識。您需要詢問另一個關於ASP控制ID的問題,因爲這不在我的聯盟中。 「 –

+0

」另外,你爲什麼需要這樣做呢?這將不能在函數之外訪問,因爲它是一個局部變量傳遞給函數(通過它的參數)「 我需要檢查方法中是否看到它匹配,所以我可以改變文本框的顏色。不知道你必須在控制ID之前做「#」。謝謝! – TheGateKeeper