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>