以编程方式添加多个javascript事件 - 没有内联JavaScript

时间:2016-01-15 19:04:13

标签: javascript

以编程方式添加多个javascript事件

我已使用以下内容成功添加了表单提交事件代码:

li

现在我在页面text1上有一个文本框,我希望在焦点需要时清除它的值。

我尝试添加以下内容:

if (window.addEventListener){           
    window.addEventListener('load', attachFormSubmit, false);
}else if (window.attachEvent){
    window.attachEvent('onload', attachFormSubmit );
}

我在window load事件中添加了对attachFocus的调用:

function attachFocus()
{
    var txt = document.getElementById("text1");
    if (txt.addEventListener){      
        txt.addEventListener('focus', ClearText(txt.id), false);
    }else if (txt.attachEvent){             
        txt.attachEvent('focus', ClearText(this.id));
    }
}

    function ClearText(id)
    {
        var obj = document.getElementById(id);
        obj.value='';
    }

因此,我为文本框焦点事件添加的代码不起作用。有人可以向我指出我做错了什么,并建议通过javascript添加事件的更好方法。我不想使用内联javascript

1 个答案:

答案 0 :(得分:3)

撰写ClearText(txt.id)

你没有传递这个功能

调用函数

你应该写:

 txt.attachEvent('focus', function() {clearText(txt.id);});

或者:

txt.addEventListener('focus', ClearText.bind(txt), false);

function ClearText() {
  var obj = document.getElementById(this.id);
  obj.value = '';
}