Frage

How can I make a input field that automatically adds a dash after six digits. Is should also only be possible to write numbers in the input field.

Can this be done using jQuery?

War es hilfreich?

Lösung

Borrowing code from this post: How to allow only numeric (0-9) in HTML inputbox using jQuery?

You can add a condition to capture length.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.0/jquery-ui.min.js"></script>

<script>
$(document).ready(function() {
    $("#txtboxToFilter").keydown(function(event) {
        // Allow: backspace, delete, tab, escape, and enter
        if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
             // Allow: Ctrl+A
            (event.keyCode == 65 && event.ctrlKey === true) || 
             // Allow: home, end, left, right
            (event.keyCode >= 35 && event.keyCode <= 39)) {
                 return;
        }
        else {
            // Ensure that it is a number and stop the keypress
            if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {   
                event.preventDefault(); 
            }   
        }

        if(  $("#txtboxToFilter").val().length == 6 )
       {
            event.target.value = event.target.value + "-";
       }
    });
});
</script>

<form>

<input type="text" id="txtboxToFilter">

</form>

Andere Tipps

jQuery('#inputFieldId').keydown(function(event) {
            var enteredValue = jQuery(this).val();
            if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
                   (event.keyCode == 65 && event.ctrlKey === true) || (event.keyCode >= 35 && event.keyCode <= 39) || 
                   (event.keyCode>=48 && event.keyCode<=57) || (event.keyCode>=96 && event.keyCode<=105)) // allow numbers
                {
                   if(enteredValue.length==6 && ((event.keyCode>=48 && event.keyCode<=57) || (event.keyCode>=96 && event.keyCode<=105)))
                   {
                    jQuery(this).val(enteredValue+"-")
                   }
               }
            else
            {
                event.preventDefault();
            }
        });

now corrected the code, try this.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top