2017-11-26 9 views
0

jQueryを通じて番号を米国の電話番号フォーマットでフォーマットしようとしています。つまり(111) 111 1111ですが、11桁目を追加して削除しないようにしても削除させません。誰も助けることができますか?特定のフォーマットで入力をフォーマットするためのjQuery

$("#no").keypress(function(e) { 
 
    var value = $(this).val(); 
 
    if(value.length <= 10) { 
 
    var first = "(" + value[0]+value[1]+value[2] + ")" + " " + value[3]+value[4]+value[5]+ " " + value[6]+value[7]+value[8]+value[9]; 
 
    $(this).val(first); 
 
    $("#no_span").html(first); 
 
    e.preventDefault(); 
 
    } 
 
    if(value.length > 10) { 
 
    $(this).val($("#no_span").html()); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input id="no" maxlimit="14"/> 
 
<span id="no_span"></span>

答えて

2

私は数に特殊文字とスペースを追加するためにswitch文を使用し、これを試してみてください。 10文字以上であれば定形番号を示すif文があります。別の機能が必要な場合は、私に知らせてほしいと思っています。

$("#no").on('keyup', function() 
 
{ 
 
    var value = $(this).val().split('') 
 
    var output = '' 
 
    for (var i = 0; i < value.length; i++) { 
 
    switch (i) { 
 
     case 0: { 
 
     output += '(' + value[i]; 
 
     break; 
 
     } 
 
     case 2: { 
 
     output += value[i] + ') '; 
 
     break; 
 
     } 
 
     case 5: { 
 
     output += value[i] + ' '; 
 
     break; 
 
     } 
 
     default: output += value[i] 
 
    }  
 
    } 
 
    if (value.length >= 10) 
 
    $('#no_span').html(output) 
 
    else 
 
    $('#no_span').html('') 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="no" maxlimit="14"/> 
 
<span id="no_span"></span>

関連する問題