1

以下代码位于我的头部标签之间:

    <script type="text/javascript" src="js/jquery-2.0.3.js"></script>
    <script type="text/javascript" src="js/homepage.js"></script>  

身体某处:

    <input type="text" id="registreervoornaam" name="registreervoornaam" placeholder="Voornaam">

在我的 homepage.js 中:

window.onload=function(){
    var regname = document.getElementById("registreervoornaam");
    regname.focus = function() {
        alert("bla");
    };
};

不知何故,当我专注于输入字段时,我没有收到警报。关于这可能是什么的任何想法?我在 onload 中添加了该函数,因为否则 regname 将变为 null,因为 javascript 文件在正文之前被解析。

4

3 回答 3

3

如果您打算以这种方式设置事件处理程序,则属性名称是“onfocus”,而不是“focus”。

regname.onfocus = function() {
    alert("bla");
};
于 2013-09-25T22:28:59.597 回答
3

我会做些什么来解决这个问题:

  1. 查看 getElementById 返回的值是否为null. 如果是,则表示您的元素在页面中不存在。如果是这种情况,您可能希望将所有脚本放在标记文件的末尾,以便在加载脚本时,整个 DOM 已经加载。

  2. 如果您已经在导入 jQuery,为什么不使用它呢?:DI 只会做:

    $("#registreervoornaam").focus(function() {
         //do stuff here that you want to be triggered on focus
    });
    
  3. 我刚刚意识到纯 js 中没有“焦点”:/ 我会使用 onfocus 代替。这是有关它的更多详细信息>>这里

祝你好运!:D

于 2013-09-25T22:40:02.733 回答
-2

如果您的页面上有 jQuery,您可以编写:

$(function(){
$("#registreervoornaam").onfocus= function() {
    alert("bla");
};

});

于 2013-09-25T22:36:40.937 回答