7

以下は、ajax経由でロードしたフォームです。フォームページを直接実行すると、c_name のオートフォーカスが firefox で機能しますが、ajax をロードすると機能しません! ただし、オペラ/サファリ/クロームでは問題なく動作します!

<form action="client_entry_action.php" method="post" id="client_entry_form" name="client_entry_form">

<fieldset id="client_info_1">

    <label for="c_name">Name:</label> 
    <input type="text" name="c_name" required placeholder="Name" autofocus="autofocus" />

    <label for="c_phone">Phone Number:</label> 
    <input type="tel" name="c_phone" required placeholder="Mobile/Phone Number" />

    <label for="c_email">Email:</label> 
    <input type="email" name="c_email" required placeholder="email@example.com" />

    <label for="c_address">Address:</label> 
    <textarea name="c_address" ></textarea>


</fieldset>

<fieldset id="client_info_2">   

    <label for="c_info">Additional notes:</label> 
    <textarea name="c_info" ></textarea>

    <input type="submit" name="add_client" value="Add Client" />

</fieldset>        

</form>
4

5 に答える 5

6

オートフォーカスは、onload が起動する前にのみ実行されます。これは、最初のページ読み込みにフォーカスを指定する宣言的な方法であることを意図しています。

于 2012-03-31T14:53:24.567 に答える
5

div での ajax 呼び出しの後に settimeout を使用するか、jquery を使用して .ajaxComplete または .done を使用する

function theAjax(){
//after the ajax actions loaded......
//use settimeout to refocused on the input..
var t=setTimeout("focusMe()",500);

}

function focusMe(){
document.getELementById("theInput").focus();  //the new input

}

//using jquery use .ajaxComplete, or .done
 $( document ).ajaxComplete(function() {
   $("#focusOnMe").focus();
 }
于 2014-07-24T13:25:13.580 に答える
3

これは古いことは知っていますが、この問題が発生したばかりで、誰かの助けになるかもしれません。

jQueryを使用する場合、これは機能します:

$("input[name='c_name']").focus();

Javascript は次のようになります (一般的な例):

document.getElementById('element').focus();

ただし、フォームが ajax 経由で読み込まれた後、その関数を呼び出す必要があります。

于 2013-10-21T13:19:40.163 に答える
0

まったく同じ問題があります。少なくとも最新バージョンでは、Autofocus 属性が FF で機能しません。フォーム付きのポップアップウィンドウもあります。このポップアップの開始には Ajax が使用されます。

これらのリンクがお役に立てば幸いです:

webmasters.stackexchange.com でのディスカッション

スタックオーバーフローに関する別の議論

しかし、javascript ハックを使用する以外に、これ以上シンプルで見栄えの良い解決策は見つかりませんでした。

于 2012-11-01T12:55:11.483 に答える