2016-04-25 78 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 />

注意:上面的代码不照顾键盘箭头键导航和字符插入现有在键入的文本中的任何特别的地方。它也不支持复制粘贴过程。