2

さまざまなイベントのリスナーを作成するサイト全体のJSがありますが、特定の条件では、以下のコードのように特定の関数を呼び出す必要があります。関数呼び出しを呼び出す必要がありますが、呼び出されません。

<html>
<head>
<script>
window.onload = function ()
{    
   var inputs = document.getElementsByTagName("input");
   var len = inputs.length;

   for (var i=0; i < len; i++) 
   {        
         if (inputs[i].getAttribute("type") == "text") 
         {    
                  var element = inputs[i];

                  element.onfocus = function() 
                  {    
                        var id = element.getAttribute("id");
                        alert(id);
                  }
          }
   }
}

function call(element)
{    
      element.value="";
}
</script>
</head>
<body>
<input type="text" name="myvar1" value="same content" id="noviceid" onfocus="call(this);">
<input type="text" name="myvar2" value="same content" id="noviceid" onfocus="call(this);">
</body>
</html>

提案してください。両方をonfocusと呼びたいと思います。私はjavascriptを初めて使用します。

4

1 に答える 1

2

したがって、ページが(適切なcall onfocusハンドラーを使用して)ロードされると、window.onloadこれらすべてのハンドラーを上書きする実行を実行します。私はそれがあなたが意図したことではないと思います。代わりに、可能であればDOM2イベントを使用できます。

element.addEventListener("focus", function(event) 
      {
            var id = event.target.getAttribute("id");
            alert(id);
      }, false);
于 2012-05-01T14:04:54.347 に答える