2016-04-26 6 views
0

Das muss so einfach sein, aber ich bin wirklich fest und kann es nicht ausarbeiten aufgrund meiner schlechten jQuery Fähigkeiten.Eingabefeld mit konvertierten Zeichen während der Eingabe anfügen, JQUERY

Das Ziel besteht darin, lateinische Zeichen in griechische Großbuchstaben umzuwandeln, wenn der Benutzer ein Eingabefeld eingibt.

Es scheint, dass ich ziemlich nah bin, aber mein Problem ist, dass ich meine lateinischen und griechischen Zeichen zusammen für ein einzelnes keyup Ereignis erhalte. Hier ist meine Geige https://jsfiddle.net/harman79/dymtufy8/

HTML:

<input type="search" id="search-id"> 

JQUERY:

$("#search-id").bind('keyup', function(e) { 
    var charMap = { 
    65: 913, 
    66: 914, 
    67: 936, 
    68: 916, 
    69: 917, 
    70: 934, 
    71: 915, 
    72: 919, 
    73: 921, 
    74: 926, 
    75: 922, 
    76: 923, 
    77: 924, 
    78: 925, 
    79: 927, 
    80: 928, 
    81: 931, 
    82: 929, 
    83: 931, 
    84: 932, 
    85: 920, 
    86: 937, 
    87: 937, 
    88: 935, 
    89: 933, 
    90: 918 
    }; 

    $.each(charMap, function(index, value) { 
    if (index == e.which) { 
     $("#search-id").val(function(index, val) { 
     return val + String.fromCharCode(value); 
     }); 
    } 
    }); 
}); 

Wenn ich ersetzen return val + String.fromCharCode(value); mit return String.fromCharCode(value); ich nur meine konvertierten Charakter bekommen, aber jedes neue keyup ersetzt vorherige Eingabe Inhalt.

Jeder hep würde sehr geschätzt werden! Harry

Antwort

1

Sie können dies versuchen:

$("#search-id").bind('keyup', function(e) { 
 
    var charMap = { 
 
    65: 913, 
 
    66: 914, 
 
    67: 936, 
 
    68: 916, 
 
    69: 917, 
 
    70: 934, 
 
    71: 915, 
 
    72: 919, 
 
    73: 921, 
 
    74: 926, 
 
    75: 922, 
 
    76: 923, 
 
    77: 924, 
 
    78: 925, 
 
    79: 927, 
 
    80: 928, 
 
    81: 931, 
 
    82: 929, 
 
    83: 931, 
 
    84: 932, 
 
    85: 920, 
 
    86: 937, 
 
    87: 937, 
 
    88: 935, 
 
    89: 933, 
 
    90: 918 
 
    }; 
 

 
    $.each(charMap, function(index, value) { 
 
    if (index == e.which) { 
 
     $("#search-id").val(function(index, val) { 
 
     // Remove last character and replace with new value 
 
     return val.substring(0, val.length - 1) + String.fromCharCode(value); 
 
     }); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="search" id="search-id">

+0

Dank viel Kumpel !!! Hab mich losgemacht. Es scheint, dass ich meine keyup mit Keydown für schnellere Umwandlung Antwort ersetzen muss, aber alle Logik ist jetzt da .. – harman

+0

Ja, Keydown wäre die beste Wette für das, was Sie wollen. – KiiroSora09

Verwandte Themen