0

我正在使用下面的代码来替换焦点上的文本框。但问题是它会产生无休止的重复并使文本框无法使用。

  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 事件并稍后分配吗?我怎样才能做到这一点

4

0 回答 0