1

jQueryを使用してAJAXバックグラウンドリクエストを行うASP.NETアプリケーションに取り組んでいます(jQueryは初めてです:))。私のjQueryコードは次のとおりです。

$(document).ready(function () {

        $("#ctl00_cphContent_txtOrgName").keypress(function () {

            var orgNameLen = $("#ctl00_cphContent_txtOrgName").val().length;
            if (orgNameLen <= 4) {
                $("#orgNameHints").empty();
                $("#orgNameHints").css('display', 'none');
                return;
            }
            $("#orgNameHints").css({ "visibility": "visible" });
            $("#orgNameHints").html("Checking...");
            var OrgName = $(this).val();
            $.get("ProcessOrgName.aspx?n=" + OrgName, function (data) {
                $("#orgNameHints").html(data);
                $("#orgNameHints").show();
            });
        });
        $("#ctl00_cphContent_txtOrgName").blur(function () {
            $("#orgNameHints").empty();
            $("#orgNameHints").css({ "visibility": "hidden" });
        });
    });

また、ASP コードは次のとおりです。

<asp:TextBox ID="txtOrgName" runat="server" MaxLength="100"></asp:TextBox>
<div id="orgNameHints" style="border: 1px solid silver; display:none; position:absolute; padding: 5px; background: #EFEFEF; z-index: 100;"></div>

これtxtOrgNameは、バックグラウンドで同じデータを持つ既存のレコードをチェックするために使用されるテキストボックスです (Google の検索キーワードのヒントと同様)。.get() メソッドは、検索キーワードを querystring として投稿しProcessOrgName.aspx、データベースからそのような既存のレコードのリストを返します。

ここではすべてが正常に機能しますが、私が直面している問題は次のとおりです。

  1. Keypress() イベントは検索を呼び出します。stackoverflow を検索している場合 、w が欠落している stackoverflo照会ます。それで、正確な結果を得る方法はありますか?
  2. キーワードを検索すると問題なく表示されますが、バックスペースを押してテキストボックスをクリアすると、テキストボックスが既にクリアされた後にバックスペースを 2 回押すまで、同じ結果が表示されます。それで、バックスペースを押した場合に結果が表示されないようにするためのアイデアを教えてください。
  3. orgNameHintsshow();という名前の div を表示および非表示にするその他の方法。そして隠す(); 私の場合はうまくいきません。もっと正確にしたいです!
  4. ユーザーが入力する代わりにキーワードをコピーして貼り付ける場合があるため、その場合も検索結果を取得する必要があります。

どんな助けでも本当に感謝しています。

4

1 に答える 1

0
  1. これは、テキストをキャプチャしているときの結果である可能性があります。キープレス/キーアップ/キーダウン。このスクリプトを keyup() イベントで実行したいと思うかもしれません。詳細については、 http: //www.bloggingdeveloper.com/post/KeyPress-KeyDown-KeyUp-The-Difference-Between-Javascript-Key-Events.aspx を参照してください。
  2. 1を参照
  3. 表示/非表示が機能しないのはなぜですか? または、fadeIn/fadeOut または $("elem").css({display:none}) を使用できます
  4. 貼り付け(CTL + V)の場合、(e.keyCode == 86)//86が貼り付けイベントの場合、それはkeydown()イベントにあると思います。マウスペーストに関しては、よくわかりません..これに関する良い情報が見つかりませんでした.

これはコードのスターター ブロックで、以下にフィドル リンクがあります。

$(document).ready(function(){
    function DoWork(){
    $("#searchOutput").append("<li>" + $("#tb1").val() + "</li>");
    }
$("#tb1").keyup(DoWork);
    $("#tb1").keydown(function(e){
        if(e.keyCode == 86){
            DoWork();
        }
    });        
});​

http://jsfiddle.net/TNCodeMonkey/CnDGw/3/

頑張ってください!

于 2012-11-16T22:06:41.757 に答える