我在asp中有一个搜索文本框。我想让它在每次更改文本时向服务器发送请求。我有一个发送请求的javascript函数,但每次在文本框中输入内容时都不会调用它。如何从ASP文本框中调用javascript函数?
这是我的文本框:
<asp:TextBox ID="search" name="Search" runat="server" onchange="javascript:text_changed();"></asp:TextBox>
那是我的js函数:
function text_changed() {
searchedword = document.getElementById("ContentPlaceHolder1_search").value;
SendRequest();
}
答案 0 :(得分:7)
您应该使用onKeyPress事件来调用该函数。
<asp:TextBox ID="search" name="Search" runat="server" onKeyPress="javascript:text_changed();"></asp:TextBox>
答案 1 :(得分:2)
Shivam的回答是对的。您可以使用KeyPress事件来获取用户使用该事件的击键。
但是我想告诉你,你不应该像这样使用ASP.NET控件ID:
document.getElementById("ContentPlaceHolder1_search").value;
因为如果将文本框放在html层次结构中的其他位置会导致错误,ASP.NET会重新生成它的id。
尝试那个,而不是:
function text_changed(textObj) {
searchedword = textObj.value;
SendRequest();
}
<asp:TextBox ID="search" name="Search" runat="server"
onKeyPress="javascript:text_changed(this);"></asp:TextBox>
答案 2 :(得分:0)
您要求的功能可以通过
实现请改用onkeyup或onkeydown。
然后,当您键入或单击文本框时,将运行该功能。然后,您还可以检测事件的键代码,如果您不希望它运行某些键,则可以阻止该功能。
使用以下代码
$("#search").keydown(function(){
text_changed();
});
$("#search").keyup(function(){
text_changed();
});
答案 3 :(得分:0)
试一试:)
$("#search").change(function(){
//your ajax codes
});
答案 4 :(得分:0)