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

:上記のコードは、入力された-の既存のテキスト内の任意の特定の場所でキーボードの矢印キーナビゲーションと文字の挿入のための世話をしていません。また、コピー貼り付け処理もサポートしていません。

関連する問題