Frage

Ich mag Capture-Eingang Zeichen in Textfeld konvertiert dann nach einem Tisch und lege sie zurück in Textfeld als Benutzertypen.

<form id='myForm'>

Enter phone number:<input type="text" id='idMyText' name="myText" onKeyUp="alphaToNum(this.value)">
</form>




<script>
// on each keypress in input box, I want to capture key pressed,
// determine if key pressed belong to group of identified characters
// if, so then convert to specified numeric equivalent and return character 
// to text box.
// This mapping corresponds to numeric characters on blackberry device.
// Normally user has to press alt+letter to get numbers. This will provide
// quicker access to numeric characters on for numeric fields

function alphaToNum(e) {
 x = e;
 x = (x.replace(/W/, "1"));
 x = (x.replace(/E/, "2"));
 x = (x.replace(/R/, "3"));
 x = (x.replace(/S/, "4"));
 x = (x.replace(/D/, "5"));
 x = (x.replace(/F/, "6"));
 x = (x.replace(/Z/, "7"));
 x = (x.replace(/X/, "8"));
 x = (x.replace(/C/, "9")); 
 document.getElementById('idMyText').value = x; 
}

</script> 
War es hilfreich?

Lösung

Sollte es tun. Jetzt funktioniert überall dort, wo caret ist und auch beim Kopieren / Einfügen WECZ in Feld (wenn diese Fragen)

var conversionMap = {W:1,E:2,R:3,S:4,D:5,F:6,Z:7,X:8,C:9};
function alphaToNum(){
    var field = document.getElementById('idMyText');
    var value = field.value.split('');
    var i = 0, len = value.length;

    for(i;i<len;i++){
        if (conversionMap[value[i]]) {
            value[i] = conversionMap[value[i]];
        }
    }
    field.value = value.join('');
    // prevent memory leak.
    field = null;
}

** Bearbeiten nach Tim Downs Kommentar **

Andere Tipps

Es könnte besser sein, dies zu tun, wenn die Wertänderungen im Eingang, statt, wenn die Taste gedrückt wird. Andernfalls andere Formen der Eingabe (Einfügen Wert) umgeht diese Substitution.

Sollte es tun. Jetzt funktioniert überall dort, wo caret ist und auch beim Kopieren / Einfügen WECZ in Feld (wenn diese Fragen)

var conversionMap = {W:1,E:2,R:3,S:4,D:5,F:6,Z:7,X:8,C:9};
function alphaToNum(){
    var field = document.getElementById('idMyText');
    var value = field.value.split('');
    var i = 0, len = value.length;

    for(i;i<len;i++){
        if (conversionMap[value[i]]) {
            value[i] = conversionMap[value[i]];
        }
    }
    field.value = value.join('');
    // prevent memory leak.
    field = null;
}

seine Arbeit gut, bis wir nicht utf-8 Zeichen wie ÖAI usw. verwenden ... eine Idee, für die Reparatur dieses „Leck“?

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