2012-04-20 10 views
0

これは簡単ですが、それは私を夢中にしています。私は、テキストエリアを含むjQuery Toolsオーバーレイフォームをポップアップしています。そのテキストエリアにフォーカスがあるようにしたいと思います。フォーム自体はうまく動作していますが、フォーカスを得ることができません。フォームが提示されたときに次のコードが実行されます。jQueryツールオーバーレイフォームでフォーカスを取得するにはどうすればよいですか?

$(document).ready(function() { 
    console.log('firing!');] 
    $('#edit-comment').css('color', '#ff0000'); 
    $('#edit-comment').focus(); 
}); 

フォームは私がにconsole.logのエントリを取得し、私はテキストエリアの色の変化を取得し、表示されますので、コードが間違いなく実行し、発見された場合テキストエリア。しかし、私はテキストエリアにフォーカスを設定しないでください。

私はこれが非常に奇妙なことを発見しています。そこに何か洞察?

答えて

0
$(function() { 
    console.log("firing!"); 
    document.getElementById("edit-comment").style.color = "#F00"; 
    document.getElementByID("edit-comment").focus(); 
}); 

しかし、色はテキストの色を変更します。バックグラウンドを変更したい場合は.backgroundColorを使い、ボーダーを変更したい場合は.borderColorを使用してください。

+0

色の変化の事は、私がテキストエリアを正しく見つけていることを確認するためのテストコールであり、私はそれに何かできることがある - 実際にはそこには存在しません。しかし、とにかく、(a)document.getElementByIdはjQuery呼び出しとどのように違っていますか(b)試してみましたが、どちらも機能しません。 ?? –

+0

奇妙なことに、私はwebappを使っていて働いています。私はちょうどChromeでそれを使って簡単なhtmlをテストしていましたが、IE 8ではそうはしませんでした。それは実際に動作するはずです。 –

+0

ええ、そういうわけでそれはとても奇妙です。:) Re IE 8 - http://api.jquery.com/focus/を確認してください。 - 呼び出しが行われたときにフォーム要素が表示されない場合、IEは明らかに壊れます。私は上記のコードを修正して、show()ハンドラ内のfocus()コールをtextareaに掛けたままにしてみましたが、まだ運がありません。 –

1

#edit-commentがDOMで作成される前にコードが実行されていると思われます。あなたのコードはdocument.ready上で動作します。

オーバーレイを読み込む関数の中に$('#edit-comment').focus();コードを実行して、それが役立つかどうかを確認してください。

0

パントとしてはあまり答えられません。時間は忘れ去られる。私は同じことをやるための別の方法を見つけました。私は、#edit-commentが作成されたときの正確なArnoのポイントはその一部だと思います。いずれにしても、助けてくれてありがとう!

関連する問題