Javascript 在ASP.NET中键入文本框时运行JSON
我需要在键入时获取textbox的值,并执行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/
$(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。