我正在使用下面的代码来替换焦点上的文本框。但问题是它会产生无休止的重复并使文本框无法使用。
window.changeInputType = function(oldObject, oType) {
var newObject = document.createElement('input');
var wrapper= document.createElement('div');
wrapper.innerHTML= oldObject.outerHTML.replace('type=password','type=text');
var newObject = wrapper.firstChild;
var focus = newObject.focus;
newObject.focus = "xxx";
oldObject.parentNode.replaceChild(newObject,oldObject);
newObject.select();
return newObject;
}
HTML是
<input type="password" onfocus="changeInputType(this,'text')"
onblur="changeInputType(this,'password')">
但这会导致无休止的重复,因为每次我关注它都会一次又一次地添加元素。我可以用 setTimeout 函数替换 onfocus 和 onblur 事件并稍后分配吗?我怎样才能做到这一点