2016-04-25 77 views
-1

我有一個文本框。它可以接受數字以及字母。我需要在運行時格式化文本框的值,以便每當按下數字/字母並且以前是其他類別(字母/數字)時,它應該自動插入-符號。文本框值格式

例如:AB108B8格式應爲AB-108-B-8

請在這方面幫助我。

回答

0

您是否在尋找此類行爲?以下代碼嘗試支持用戶連續輸入時的情況,而不用使用箭頭鍵更改光標位置。您可以從這段代碼中獲得一些想法,並根據您的需要進行修改。

var isOppositeChar = false; 
 
$('#field').keypress(function(event) { 
 
    var $field = $(this); 
 

 
    // this is the value before the keypress 
 
    var beforeVal = $field.val(); 
 
    var newVal = beforeVal; 
 
    
 
    if(beforeVal.length > 0) 
 
    { 
 
     
 
     var chkResult = checkLastChar(beforeVal,event.key); 
 
     if(chkResult) 
 
     newVal +=event.key; 
 
     else 
 
     newVal += "-"+event.key; 
 
     event.preventDefault(); 
 
     $field.val(newVal); 
 
    } 
 

 
    
 
}); 
 

 
function checkLastChar(fieldVal,newChar){ 
 
    var lastChar = fieldVal[fieldVal.length - 1]; 
 
    var lastCharIsAlphabate = false; 
 
    var newCharIsAlphabate = false; 
 
    
 
    if(isNaN(lastChar)) 
 
    lastCharIsAlphabate = true; 
 
    
 
    if(isNaN(newChar)) 
 
    newCharIsAlphabate = true; 
 
    
 
    if(lastCharIsAlphabate == newCharIsAlphabate) 
 
    return true; 
 
    else 
 
    return false; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<input id=field />

注意:上面的代碼不照顧鍵盤箭頭鍵導航和字符插入現有在鍵入的文本中的任何特別的地方。它也不支持複製粘貼過程。