jquery .ajax()没有按条件触发

时间:2014-01-29 06:46:28

标签: jquery asp.net ajax

我在jquery ajax()调用之前设置了一个条件,它不再触发。我基本上只希望ajax()在有人点击进入文本框时调用火。

ajax()调用在没有$("[id$=txtSearch]").bind条件的情况下正常工作。

我做错了什么?还有另一种方法可以解决这个问题吗?

$("[id$=txtSearch]").keyup(function (e) {
    if (e.keyCode == 13) {
        $(this).trigger("enterKey");
    }
});

$("[id$=txtSearch]").bind("enterKey", function (e) {
    var query = $("[id$=txtSearch]").val();
    alert(query); // This works 
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "Viewer.aspx/GetSearchResults",
                dataType: "json",
                data: JSON.stringify({ docID: docid, query: query, 
                      pageNumber: 1, resultsPerPage: 10 }),
                success: function (response) {
                    alert(response.d.TotalResults);
                },
                error: function (xhr, status, error) {
                    var err = eval("(" + xhr.responseText + ")");
                    alert(err.Message);
                    alert("responseText=" + xhr.responseText + 
                           "\n textStatus=" + status + "\n 
                           errorThrown=" + error);
                }
            });
        });

我的文字框:

 <asp:TextBox ID="txtSearch" runat="server" TextMode="Search" 
    AutoCompleteType="Search" placeholder="Search for text in the document..." 
    AutoPostBack="true" ToolTip="Search for text in the document..." >
 </asp:TextBox>

2 个答案:

答案 0 :(得分:0)

您只需使用您的选择器的ID。

尝试使用$('#txtSearch')代替$("[id$=txtSearch]")

答案 1 :(得分:0)

尝试通过

替换你的JS
$(function(){
    $("#txtSearch").keyup(function (e) {
        if (e.keyCode == 13) {
            $(this).trigger("enterKey");
        }
    });

    $("#txtSearch").bind("enterKey", function (e) {
        var query = $("#txtSearch").val();
        alert(query); // This works 
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "Viewer.aspx/GetSearchResults",
            dataType: "json",
            data: JSON.stringify({ docID: docid, query: query, pageNumber: 1, resultsPerPage: 10 }),
            success: function (response) {
                alert(response.d.TotalResults);
            },
            error: function (xhr, status, error) {
                var err = eval("(" + xhr.responseText + ")");
                alert(err.Message);
                alert("responseText=" + xhr.responseText + "\n textStatus=" + status + "\n errorThrown=" + error);
            }
        });
   });
});