DavidW
DavidW

Reputation: 5129

Changing the charCode of the key pressed

In following example I am attempting to change the charCode of the key pressed but it does not change. When I press "a" I want it to type "b". What am I doing wrong?

$("#target").keypress(function(event) {
     if ( event.which == 97 ) {
         //alert('pressed a');
         //event.preventDefault();
         event.keyCode = 98;
         event.charCode = 98;
         event.which = 98;
     }
});

Upvotes: 3

Views: 5937

Answers (2)

mehdi
mehdi

Reputation: 685

replace comma and dash to slash.

$('.pdate').on('keypress', function (e) {
        var ch = String.fromCharCode(e.keyCode);
        $("div").text(e.keyCode)
        if (!((ch >= '0' && ch <= '9') || 
        ch == '/' || ch == ',' || ch == '-')) {
            return false;
        }
        if (ch == ',' || ch == '-')
        {
            var val = $(this).val();
            var s = this.selectionStart;
            val = val.slice(0, s) + "/" + val.slice(s, val.length);
            $(this).val(val)
            this.selectionStart = s +1;
            this.selectionEnd = s +1;
            return false;
        }
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" class="pdate" />
<div></div>

Upvotes: 0

gdoron
gdoron

Reputation: 150243

You can't override the keycode in the event object...

Look at this snippet:

$('#target').keypress(function(e){
    if (e.which == 97)
        this.value = this.value + String.fromCharCode(98)
    else
        this.value = this.value + String.fromCharCode(e.which)

    ....

    return false;
})

Upvotes: 4

Related Questions