Domanda

Voglio inserire caratteri cattura in casella di testo, convertire poi in base a una tabella e rimetterli nella casella di testo come tipi di utente.

<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> 
È stato utile?

Soluzione

dovrebbe fare il trucco. Ora funziona ovunque accento circonflesso è e anche quando si copia / incolla WECZ nel campo (se quello che conta)

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;
}

** Modifica dopo Tim Downs commento **

Altri suggerimenti

E 'potrebbe essere migliore di fare questo quando il valore cambia in ingresso, piuttosto che quando viene premuto il tasto. Altrimenti, altre forme di ingresso (valore incollare) ignorerà questa sostituzione.

dovrebbe fare il trucco. Ora funziona ovunque accento circonflesso è e anche quando si copia / incolla WECZ nel campo (se quello che conta)

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;
}

il suo buon lavoro fino a quando non abbiamo usato UTF-8 caratteri come öéáí ecc ... qualche idea per la riparazione questa "fuga"?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top