我想在表单中为输入字段创建一个onfocus函数。我正在使用拖放着陆页向导(在Marketo中),因此我无法访问HTML标记。
我尝试使用getElementById,它仅适用于第一个字段。我也尝试了以下内容:
<script>
var input = document.getElementsByTagName('input')[0]
input.onfocus = function() {
this.value=''
}
</script>
答案 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)
//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=''
});