0

我希望用户在单击时选择整个输入框。

在我的情况下,输入框是:

      <label for="bla">My checkbox</label>
      <input type="input" id="bla" name="check" value="checked" />

为此,我编写了以下 JS:

function SelectAll(bar){   
    bar.focus();
    bar.select();
    console.log(bar);
}    
window.onload=function()
{
   var bla=document.getElementById("bla");
   bla.addEventListener('click',SelectAll(bla),false);       
};

但是我在控制台中得到的只是<input type="input" value="checked" name="check" id="bla"> 一次,无论我点击多少,我都无法再得到。

4

3 回答 3

1

addEventListener回调引用应该没有参数。

.addEventListener('click', SelectAll)

通过添加(bla),它实际上被称为SelectAll(bla)(element),这不是您想要的。

于 2017-01-23T09:51:34.343 回答
0

总结我的研究,我得出以下结论:

addEventListener回调引用应该没有参数,因为它将事件传递给函数。

因此,实现的正确方法listener.addEventListener('click', SelectAll, false).

由于event通过了,但您想使用实际的element,您将需要使用bar.target它来访问它。

于 2017-01-23T12:05:33.170 回答
-2

尝试这个 :

$( "#bla" ).click(function() {
     bla.addEventListener('click',SelectAll(bla),false);    
    });
function SelectAll(element){   
    element.focus();
    element.select();
    console.log(element);
} 
于 2017-01-23T09:56:59.763 回答