10桁を米国の電話番号のように見せようとしています(つまり、(###)###-####)。私のコードはこの最初の目標を達成しますが、それは私が完全に理解できないことも行います。数字を入力すると、他の数字を入力する前に文字「()」が表示されます。最初に開き括弧を表示し、3桁目を入力した後に閉じ括弧を表示したいと思います。新しい解決策を教えてはいけません。私が説明している問題を特定してみてください。
<script type="text/javascript">
$('.drumbi-caller-number').live('keydown', function (event) {
if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39) {
} else {
inputval = $(this).val();
var string = inputval.replace(/[^0-9]/g, "");
var first3 = string.substring(0,3);
var next3 = string.substring(3,6);
var next4 = string.substring(6,9);
var string = ("(" + first3 + ")" + next3 + "-" + next4);
$(this).val(string);
}
});
</script>
この動作を表示するjsFiddleは次のとおりです。http://jsfiddle.net/bigthyme/j6kHn/3/