Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ASP.NET中键入文本框时运行JSON_Javascript_Jquery_Asp.net_Json - Fatal编程技术网

Javascript 在ASP.NET中键入文本框时运行JSON

Javascript 在ASP.NET中键入文本框时运行JSON,javascript,jquery,asp.net,json,Javascript,Jquery,Asp.net,Json,我需要在键入时获取textbox的值,并执行JSON函数,我尝试了以下操作: $(document).ready(function () { $("#<%= txtBusca.ClientID %>").keypress(function () { $.ajax({ type: "POST", data: "{ 'valor' : '" + $(this).val() + "'}", url: "Especialidades.aspx/

我需要在键入时获取textbox的值,并执行JSON函数,我尝试了以下操作:

$(document).ready(function () {
  $("#<%= txtBusca.ClientID %>").keypress(function () {
    $.ajax({
      type: "POST",
      data: "{ 'valor' : '" + $(this).val() + "'}",
      url: "Especialidades.aspx/Buscar",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function () {
        alert('OK');
      }
    })
   });
});
$(文档).ready(函数(){
$(“#”)按键(功能(){
$.ajax({
类型:“POST”,
数据:“{'valor':'”+$(this.val()+“}”,
url:“specialidades.aspx/Buscar”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:函数(){
警报(“正常”);
}
})
});
});

但是它不起作用。

我认为下面这行是导致问题的原因

data: "{ 'valor' : '" + $(this).val() + "'}",
原因是这个关键字。在代码中,它指的是ajax上下文

我建议您在Ajax调用阻塞之前将其分配到变量中,并在内部引用它,如下所示:

$("#<%= txtBusca.ClientID %>").keypress(function () {

var enteredValue=$(this).val();

$.ajax({
  type: "POST",
  data: { 'valor' : enteredValue },
$(“#”)按键(功能(){
var enteredValue=$(this.val();
$.ajax({
类型:“POST”,
数据:{'valor':enteredValue},

如果已使用双引号包装数据对象,请尝试删除它们:

data: { 'valor' : $(this).val() }

我建议给keypress事件添加一个延迟。你可以在这里的搜索栏中看到我们是如何实现这一点的:……js的未压缩源在这里可用:请注意,如果你想获得要提交的文本框的最新值,请使用keyup而不是keypress。