2012-01-20 14 views
0

我有一個文本字段可以接受任何類型的輸入。基於輸入,我需要隱藏一些字段並且隱藏其他字段。不過我想提出的第一個條件中的另一條件來檢查輸入值檢查輸入的起始字符的值Jquery

這裏的前3個字符是我的第一個條件代碼:

$("#accountcodes").live("focusout",function(){ 
    var code = $(this).val(); 
    if(code>30000){ 
    alert("T1 to T4 codes needed"); 
    $(this).parents("tr").find('#T1').removeAttr('hidden','hidden'); 
    $(this).parents("tr").find('#T2').removeAttr('hidden','hidden'); 
    $(this).parents("tr").find('#T3').removeAttr('hidden','hidden'); 
    $(this).parents("tr").find('#T4').removeAttr('hidden','hidden');  

    } 

    }) 

我想把內的另一個條件如果語句(如果在if中)檢查前3個字符是以310還是311開頭,則執行其他操作,例如,如果用戶輸入31102,則另一個字段是未隱藏的等。我不確定如何在Jquery中執行此操作。我應該使用正則表達式嗎?我是否接受輸入的值並刪除前三個字符並檢查它? 任何幫助將不勝感激

回答

3

所以,你只是想知道關於substr()code.substr(0,3)會讓你前三個字符。

或者,您可能希望使用正則表達式更容易地找到310和311,在這種情況下,您需要改爲code.match(/^31[01]/)

+0

成爲第一個應答。我將你的答案作爲正確的答案。不知道子串和其他。 – MaxI

2
 

var code = $(this).val(); 
var firstThreeChars = code.substr(0, 3); 
 
2

看來你的數值總是數字的。你不需要太多的jQuery來實現這一點。

$("#accountcodes").live("focusout",function(){ 
    var code = $(this).val(); 
    if(code > 30000){ 
     //Note: For any non-numeric value, this condition will always be false 

     alert("T1 to T4 codes needed"); 
     var p = $(this).parents("tr"); 
     p.find('#T1, #T2, #T3, #T4').removeAttr('hidden'); 

     if ((code - 31000) > 102){ // Your other condition check can look like this 
      // unhide other fields 
     } 
    } 
}); 

希望這會有所幫助。快樂編碼。

1

您的問題有你的答案,你可以做很多方面

  1. 子字符串值,並檢查該值。 2.go for jquery包含關鍵字[api.jquery.com/contains-selector/][1]