我有一个输入框onpropertychange =" validateEntryIE(this)"
validateEntryIE = function(object) {
$(object).val(validateEntry($(object).val()));
}
哪个电话:
validateEntry = function(str) {
if( str != "" ) {
var regx = /[A-Za-z0-9_]/;
var str_new = "";
var chars = str.split('');
for(var i in chars) {
if (regx.test(chars[i])) {
str_new += chars[i];
}
}
return str_new;
}
}
但是它不会替换值,只会返回堆栈溢出。我被困在了所有的信念之外。有谁知道造成这种情况的原因以及如何纠正
答案 0 :(得分:4)
由于这个
,你正在获得堆栈溢出onpropertychange="validateEntryIE(this)"
每次设置输入框的值时都会调用它,并且由于函数本身会更改属性,因此最终导致自身再次被调用,并且一次又一次地重复...直到你得到堆栈溢出。
尝试使用onkeyup,onblur或onchange事件,以便不进行递归。