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 に答える