1

<div contentEditable="true" id="content"></div>の問題は、JavaScriptを使用してdivのコンテンツを投稿した後、DIV内でカーソルがまだ点滅していて、コンテンツを送信した後にこのdivがフォーカスを失うようにしたかったことです。カーソルを取得するにはどうすればよいですか提出後にDIVから削除されますか? 送信後にぼかしをこの DIV に設定しようとしましたが、役に立ちませんでした。

    $('.save-button').on('click',function(){
    var newBio = $("#content").text();
    newBio = $.trim(newBio);

    $.post(postdatahere,
            function(data) {
            $("#content").blur();
            $('.save-button').hide();
        });
});

また、.text()編集可能な DIV または からデータを取得するために使用する方が良い.html()ですか?

4

2 に答える 2

3

サブミット時/ajaxリクエストの前にdivを編集不可にし、ajaxリクエストが終了したら編集を有効にすることができます。これは天候に関係なく行う必要があり、問題を解決するため、そうすることをお勧めします。

于 2013-02-15T04:05:16.800 に答える
0

コンテンツの編集可能なdivがぼやけた後もカーソルはそこにとどまるため、カーソルを移動するには、別のユーザーテキスト入力にフォーカスする必要があることがわかりました。

したがって、コードは次のようになります。

    $('.save-button').on('click',function(){
    var newBio = $("#content").text();
    newBio = $.trim(newBio);

    $.post(postdatahere,
            function(data) {
            $("#SomeUserInput").focus();
            $(".save-button").focus();
            $('.save-button').hide();
        });
});

.save-buttonクラスの代わりにIDであるべきではありませんが?もしそうなら、それは

    $.post(postdatahere,
            function(data) {
            $("#SomeUserInput").focus(); //blur #content by focusing on different element
            $('#save-button').focus(); // focus on the button to remove focus from #SomeUserInput and because it is going to be hidden anyways.
            $('#save-button').hide();
        });
});

(そして、はい、これはややハックです。)

使用するかどうか.text().html()、何が欲しいかによります。スタイリング(斜体、太字フォントなど)が必要な場合は使用.html()する必要がありますが、その場合は、Webサイトに不正なスクリプトが表示されないように、何らかのサーバー側フィルターがあることを確認してください。それ以外の場合は、.text()問題なく動作します。

お役に立てれば!

于 2013-02-15T02:52:20.697 に答える