ASP文本框调用javascript函数

时间:2014-07-17 07:32:04

标签: c# javascript asp.net

我在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();
}

5 个答案:

答案 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();
  });

Demo Here

答案 3 :(得分:0)

试一试:)

$("#search").change(function(){
      //your ajax codes
});

答案 4 :(得分:0)

<script>
function multy(val)
{
alert(val.value+"--"+val.id);
}
</script>
<input id="txtdemo" type="text" onchange="multy(this);"></br>
<input id="txtdemo" type="text" onchange="multy(this);">
</input>

Click to see out put screen

谢谢...:)