To include dashes between the numbers, make sure your input type is text.
HTML:
<input type="text" id="phone" maxlength="12" placeholder="xxx-xxx-xxxx" />
SCRIPT:
<script>
$('#phone').keydown(function (event) {
var length = $(this).val().length;
if (length == 3 || length == 7) {
$(this).val($(this).val() + '-');
}
})
</script>
But if you face some issues while using some keys like (backspace, hyphen, arrow left or right, Ctrl+C, Ctrl+V, Ctrl+A or refreshing the page with F5 while focused in the input box etc), then use their keyCode values like this:
<script>
$('#phone').keydown(function (event) {
// To allow backspace, tab, ctrl+A, ctrl+C, ctrl+V, ctrl+X, Enter, arrow right -> , arrow left <- , dash or hyphen, F5
if (event.keyCode == 8 ||
event.keyCode == 9 ||
event.keyCode == 13 ||
event.keyCode == 32 ||
event.keyCode == 37 ||
event.keyCode == 39 ||
(event.keyCode == 65 && event.ctrlKey === true) ||
(event.keyCode == 67 && event.ctrlKey === true) ||
(event.keyCode == 86 && event.ctrlKey === true) ||
(event.keyCode == 88 && event.ctrlKey === true) ||
event.keyCode == 109 ||
event.keyCode == 189 ||
event.keyCode == 116) {
return;
}
if ((event.keyCode < 48 || event.keyCode > 57) &&
(event.keyCode > 105 || event.keyCode < 96)) {
event.preventDefault();
}
var length = $(this).val().length;
if (length == 3 || length == 7) {
$(this).val($(this).val() + '-');
}
})
</script>