J'ai donc un appel AJAX sur l'événement onchange d'une zone de texte et une fonction de masque très simple (pour ajouter des tirets à un SSN) sur l'événement onkeyup. Ces deux fonctions fonctionnent bien sur leur propre, cependant, si le masque insère un tiret et puis je quitte la zone de texte, l'événement onchange ne se déclenchera pas.événement onkeyup arrête onchange événement ajax de tir
Quelqu'un a une idée de pourquoi? Ma conjecture est qu'en changeant la valeur avec la fonction de masque, la boîte de texte ne pense plus que quelque chose a changé.
Merci
SSN: <input id="SSN" maxlength="11" size="8" onchange="validateSSN();" onkeyup="mask()">
<span id="SSNnote"></span>
<script type="text/javascript">
function validateSSN(){
var cfc = new myajax();
cfc.setCallbackHandler(function(AjaxResults) {UpdateValidationNotes('SSNnote', AjaxResults);});
cfc.ValidateSSN(document.getElementById("SSN").value);
}
function mask(){
var temp = document.getElementById("#WhichName#").value;
var e = window.event;
if (e.keyCode == 189){
document.getElementById("SSN").value = temp.substring(0,temp.length-1);
return false;
}
if (temp.length == 3 || temp.length == 6)
if (e.keyCode != 8)
document.getElementById("SSN").value = document.getElementById("SSN").value + '-';
}
Après avoir lu votre réponse, la rouages rouillés dans ma tête a commencé à grincer et je me souviens d'un problème comme celui-ci avant. Je ne peux pas appeler mon validateSSN() dans ma fonction de masque, parce que mon AJAX affiche des messages, et je veux seulement qu'il s'affiche quand ils quittent le champ. Donc, un changement rapide de onchange à onblur a résolu le problème! Je ne sais pas pourquoi je n'y avais pas pensé avant, je devine juste trop de rouille .... Merci! – Limey