Итак, у меня есть вызов AJAX в событии onchange текстового поля и очень простая функция маски (чтобы добавить тире к SSN) в событие onkeyup. Обе эти функции отлично работают на самом деле, однако, если маска вставляет тире, а затем я удаляю текстовое поле, событие onchange не срабатывает.onkeyup event останавливается onchange событие ajax от обжига
У кого-нибудь есть идеи, почему? Я предполагаю, что, изменив значение с помощью функции mask, текстовое поле больше не думает, что что-то изменилось.
Благодаря
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 + '-';
}
После того как я прочитал ваш ответ, ржавые механизмы в моей голове начали шлифовать, и я помню такие проблемы, как раньше. Я не могу вызвать мой validateSSN() в моей маске, потому что мои сообщения AJAX отображают сообщения, и я хочу, чтобы они отображались только при выходе из поля. Итак, быстрое переключение с onchange на onblur решило проблему! Не уверен, почему я не думал об этом раньше, я думаю, просто сильно ржавеет .... Спасибо! – Limey