Jquery - Ajax调用不起作用

时间:2011-12-29 21:49:11

标签: jquery ajax json

我这半天或更长时间都在摔跤。我无法弄清楚出了什么问题。我删除了其他javascript函数,php代码等;我仍然得到一个页面重新加载而不是一个没有返回的异步调用。 Firebug也没有显示XHR调用。

Jquery正确加载,适用于其他功能。任何ajax或jSON调用都无法异步工作。

我甚至将按键功能更改为简单的按钮单击处理程序,结果相同......没有。

如果我直接加载“findmatch.php”页面,它会生成正确的结果。

同一目录中的另一个程序可以毫不费力地使用大量的ajax和jSON调用。相同的doctype,相同版本的jquery,相同的ajax调用结构......我很困惑。我一直在寻找真正愚蠢的错误,因为这就是这些东西往往......但没有运气。

        <script type=text/javascript>
        $(document).ready( function() {

    $('#searchtext').live('keypress',function(e)

    {       if (e.which == 13)          {
                mysearch=$("#searchtext").val();            if(mysearch=="")            {
                        alert("Trying typing something in the box, ok?");           }           else            {
                    $.ajax({
                    url: 'findmatch.php',                          
                    data: 'x='+mysearch,            
                    dataType: 'html',
                    success: function(res)          
                    {
                         alert(res);    

                        if(res.length>0)
                        {
                            buildit="<table><tr><td>id</td>td><b>Machine Name</b></td></tr>";   

                            buildit=buildit+res+"</table>";

                            $("#searchresults").html(buildit);

                            $("$searchtext").focus();
                        }
                        else
                        {
                            $("#searchresults").html("No Results Found");
                            $("#searchtext").focus();
                        }
                    }
                    });             }
                            }     });


    });

    </script>

</head>

<body>


<div class="searchy">
<h3>Search for an existing record?</h3>

<form>
Enter a Machine Name to search for, such as "bl-psy-srv" or "psy-srv" or something similar. A partial name will return appropriate matches. Hit Enter to submit.
<br />
<input type=text id="searchtext" size=30>
</form>

</div>

<div class="searchy" id="searchresults">
</div>

1 个答案:

答案 0 :(得分:1)

表格中有#searchtext吗?我认为Enter会触发表单上的提交操作,而您并没有阻止它。尝试插入e.preventDefault(),看看它是怎么回事。

不相关,你可能想要对mysearch进行网址编码,或者更好,只需使用一个对象 - jQuery足够聪明,可以将其转换为正确的形式:{ x: mysearch }