因此,我有一个文本框的onchange事件和一个非常简单的掩码函数(为SSN添加破折号)在onkeyup事件上的AJAX调用。这两个函数都可以正常工作,但是,如果蒙版插入短划线,然后离开文本框,则onchange事件将不会触发。onkeyup事件停止onchange ajax事件发生
任何人有任何想法为什么?我的猜测是,通过使用掩码函数更改值,文本框不再认为任何内容都已更改。
感谢
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 2011-03-23 14:40:14