如何将onfocus功能应用于所有“输入”对象?

时间:2013-01-27 08:26:21

标签: javascript html

我想在表单中为输入字段创建一个onfocus函数。我正在使用拖放着陆页向导(在Marketo中),因此我无法访问HTML标记。

我尝试使用getElementById,它仅适用于第一个字段。我也尝试了以下内容:

<script>
var input = document.getElementsByTagName('input')[0]
input.onfocus = function() {

    this.value=''


}

</script>

4 个答案:

答案 0 :(得分:2)

您查询所有<input>个元素,但仅适用于第一个匹配项:

var input = document.getElementsByTagName('input')[0]

迭代所有比赛并做你的魔术:

var inputs = document.getElementsByTagName('input');
for (var i=0; i< inputs.length; i++){
    inputs[i].onfocus = function(){this.value = '';};
}

如果你可以使用jQuery,那就容易多了:

$('input').focus(function(){this.value = '';});

答案 1 :(得分:0)

Another variant would be this

    //get all inputs
var inputs = document.getElementsByTagName('input')
    //cache the length
  , inputsLen = inputs.length;

//define one handler
function focusHandler(){
  this.style.backgroundColor = 'red';
}

//loop through all
while(inputsLen--){
  //each element's onfocus references only one function instead of "one each"
  inputs[inputsLen].onfocus = focusHandler;
}

答案 2 :(得分:0)

是的,在jquery你可以这样做:

$("input").on("focus",function(){
    //function data block goes here    
});

答案 3 :(得分:0)

每个人都打败了我,但试试这个

$("input").on("focus",function()
{
    this.value=''  
});