jquery.ajax()未按条件触发
我在jquery ajax()调用之前放置了一个条件,它不再触发。我基本上只希望在有人点击文本框中的enter键时,ajax()调用fire ajax()调用在没有jquery.ajax()未按条件触发,jquery,asp.net,ajax,Jquery,Asp.net,Ajax,我在jquery ajax()调用之前放置了一个条件,它不再触发。我基本上只希望在有人点击文本框中的enter键时,ajax()调用fire ajax()调用在没有$(“[id$=txtSearch]”)的情况下可以正常工作 我做错了什么?还有别的办法吗 $("[id$=txtSearch]").keyup(function (e) { if (e.keyCode == 13) { $(this).trigger("enterKey"); } }); $("[i
$(“[id$=txtSearch]”)的情况下可以正常工作
我做错了什么?还有别的办法吗
$("[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>
您只需使用选择器的id即可
尝试使用$('#txtSearch')
而不是$(“[id$=txtSearch]”
尝试用
$(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);
}
});
});
});
您是否可以与keydown
而不是keyup
共享输入元素htmltry。keyup不是问题所在。它很好用。由于警报(查询)未显示,因此条件正常工作。当我遇到这种情况时,ajax()调用不会触发。我试过了。由于某种原因,它不起作用。我知道那个部分无论如何都在工作…$(“[id$=txtSearch]”)工作正常。由于某些原因,其他语法没有。我不认为这是问题所在,因为警报(查询)在该条件之后工作。只是.ajax调用不起作用。如果删除行“data:JSON.stringify({docID:docID,query:query,pageNumber:1,resultsPerPage:10})”,它会起作用吗?ajax调用在前面没有$(“#txtSearch”).bind(“enterKey”,function(e){。