2014-01-29 32 views
0

我已經把條件放在我的jquery ajax()調用之前,它不再觸發。我基本上只想讓ajax()在有人命中時觸發輸入文本框。jquery .ajax()沒有觸發條件

沒有$("[id$=txtSearch]").bind條件,ajax()調用正常工作。

我在做什麼錯?還有另外一種方法可以解決這個問題嗎?

$("[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> 
+0

取代您的JS,你可以分享input元素HTML –

+0

更新問題 – Tums

+0

嘗試嘗試'keydown',而不是'keyup'。 – Jai

回答

0

,你可以簡單地使用ID爲您的選擇。

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

+0

OP的代碼有什麼問題呢? – Jai

+0

我試過了。由於某種原因,它不起作用。我知道那部分工作無論如何... – Tums

0

嘗試通過

$(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); 
      } 
     }); 
    }); 
}); 
+0

$(「[id $ = txtSearch]」)工作正常。出於某種原因,其他語法不會。警報(查詢)在條件之後工作,我不認爲這是問題。它只是沒有的.ajax調用。 – Tums

+0

如果你刪除「data:JSON.stringify({docID:docid,query:query,pageNumber:1,resultsPerPage:10}),」? – Fab

+0

沒有$(「#txtSearch」)的ajax調用正常工作。bind(「enterKey」,function(e){....在它之前。 – Tums