Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 jquerysubmit不能与我的ajax调用一起使用_Javascript_Jquery_Ajax_Forms - Fatal编程技术网

Javascript jquerysubmit不能与我的ajax调用一起使用

Javascript jquerysubmit不能与我的ajax调用一起使用,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,好吧,我遇到了一个我无法理解的非常棘手的问题。我得到了这段jquery代码: HTML代码 <form> <input type="text" value="Search for a product" id="name" size="50"> <input type="submit" id="submit" value="Search"> </form> 顺便说一句,#loader只是在ajax调用期间显示的加载gif 很简单,当我点击i

好吧,我遇到了一个我无法理解的非常棘手的问题。我得到了这段jquery代码:

HTML代码

<form>
  <input type="text" value="Search for a product" id="name" size="50">
  <input type="submit" id="submit" value="Search">
</form>
顺便说一句,#loader只是在ajax调用期间显示的加载gif

很简单,当我点击id为“submit”的按钮时,它会从id为“name”的文本字段中发送一个字符串,并在单词之间有空格的地方添加一个+,然后将字符串发送到页面APIsearch.php,在那里我得到一些东西,然后加载到“contetn”div中。现在的问题是,当我添加“form”时“输入”字段周围的元素我的ajaxt不会返回任何内容,我需要一个表单,因为我想开始使用。改为提交,这样我就可以使用enter按钮作为提交文本的选择。为什么只有当我删除像这样的“form”元素时它才起作用

<input type="text" value="Search for a product" id="name" size="50">
<input type="submit" id="submit" value="Search">

当您提交表单时,整个页面都会被提交,在服务器上,您需要以html格式回复。您不能像前面提到的那样只更新div

但是,您显示的表单元素没有指定“action”。这表示您希望使用Ajax从服务器获取信息。对于Ajax响应,您可以编程“enter”键使其工作:

$("#name").keyup(function(event){
    if(event.keyCode == 13){
        $("#submit").click();
    }
});

您需要将这一行添加到#submit click方法的顶部

event.preventDefault();
否则表单将提交,刷新页面,而不是执行ajax调用


但是请记住,按enter键不会激活提交按钮的
单击事件。要做到这一点,您必须创建自己的按键处理程序来激活您的点击代码。

live已被弃用,您应该在上使用。此外,表单标记还需要一些参数。另外,您的控制台是否在其xml响应中抛出任何错误或显示任何php错误?每次用户单击submit按钮时调用ajaxStart和ajaxStop函数是不必要的。您只需要在代码中设置一次,它们将是页面上任何ajax调用的默认值行应该在DocumentReady函数中,因为您需要确保loader元素已准备就绪,然后才能隐藏它。
event.preventDefault();