1

フォームの入力フィールドに onfocus 関数を作成したいと思います。ドラッグ アンド ドロップ ランディング ページ ウィザード (Marketo 内) を使用しているため、HTML タグにアクセスできません。

getElementById を使用しようとしましたが、最初のフィールドでのみ機能しました。私も次のことを試しました:

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

    this.value=''


}

</script>
4

4 に答える 4

2

すべての s 要素を照会しますが<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 = '';});
于 2013-01-27T08:30:06.753 に答える
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;
}
于 2013-01-27T08:32:23.207 に答える
0

誰もが私を打ち負かしますが、これを試してください

$("input").on("focus",function()
{
    this.value=''  
});
于 2013-01-27T09:57:25.047 に答える
0

はい、jqueryでは次のようにできます:

$("input").on("focus",function(){
    //function data block goes here    
});
于 2013-01-27T08:36:35.690 に答える