3

我正在使用以下代码更改输入类型 onfocus 并将其重置为文本 onblur。但这不起作用

HTML

 <input type="password" onfocus="changeInputType(this,'text')"
                        onblur="changeInputType(this,'password')">

JS

  function changeInputType(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;
     oldObject.parentNode.replaceChild(newObject,oldObject);
     return newObject;
  }

是小提琴。它不工作。

4

1 回答 1

0

假设您想将 type 属性更改为模糊时的密码和焦点时的文本,那么您的代码不起作用的原因不止一个。

  1. 您在替换调用中缺少双引号:replace('type=password','type=text')

  2. 当您调用replaceChild标记被删除并触发另一个模糊事件时导致错误。

  3. 您没有在oType任何地方使用该变量。

使用 type 属性更容易,如下面的代码:

function changeInputType(oldObject, oType) {
    oldObject.type = oType;
}
于 2015-11-10T21:36:17.220 回答