Jquery ajax发布到自身而不是脚本

Jquery ajax发布到自身而不是脚本,jquery,html,ajax,forms,post,Jquery,Html,Ajax,Forms,Post,我有一张表格: <form name="emailform" id="emailform" onsubmit="emailSubmit()" method="post"><div> <input type="text" id="email" name="email" value=""> <input class="btn" type=submit value="Submit"></div>

我有一张表格:

 <form name="emailform" id="emailform" onsubmit="emailSubmit()" method="post"><div>
        <input type="text" id="email" name="email" value="">
        <input class="btn" type=submit value="Submit"></div>
            </form>
当我单击submit按钮时,它会将电子邮件地址作为一个参数发布到自身,而不是addemail.php,页面会刷新吗?为什么会这样?如果我去掉了method=“post”,那么表单会向自己发出一个get请求,但参数是正确的email。这让我非常困惑,因为.ajax方法清楚地表明类型是POST。为什么更改表单的“方法”会改变emailSubmit()的发布

.ajax调用是从我的另一个页面上的一个非常类似的用法中一字不差地提取出来的,在我的另一个页面上它工作得很好


(当我说“it is POSTing”或“it is GETing”时,我正在使用firebug查看这些内容)

您没有做任何事情来取消标准表单提交

最终的结果是Ajax提交到您指定的URI,然后表单按正常方式提交(提交到当前页面的URI,因为您忘记了
action
属性)

  • 停止使用内部事件属性(即onsubmit属性)
  • 改用JS
  • 确保有一个action属性指向一个合理的位置,这样如果JS由于任何原因失败,表单仍然可以工作。c、 f

  • 或者,作为一个快速而肮脏的黑客…
    onsubmit
    属性的末尾返回false

    您没有做任何事情来取消标准表单提交

    最终的结果是Ajax提交到您指定的URI,然后表单按正常方式提交(提交到当前页面的URI,因为您忘记了
    action
    属性)

  • 停止使用内部事件属性(即onsubmit属性)
  • 改用JS
  • 确保有一个action属性指向一个合理的位置,这样如果JS由于任何原因失败,表单仍然可以工作。c、 f

  • 或者,作为一个快速而肮脏的黑客…
    onsubmit
    属性的末尾返回false

    您需要返回false,以便表单不提交,并在处理程序中返回值:

    onsubmit="return emailSubmit()"
    
    以及:


    您需要返回false,以便表单不提交,并在处理程序中返回值:

    onsubmit="return emailSubmit()"
    
    以及:

    -“提交按钮用于将表单数据发送到服务器。”

    我所做的是-

     <form name="emailform" id="emailform" method="post"><div>
        <input type="text" id="email" name="email" value="">
        <input class="btn" type=button onclick="emailSubmit()"></div>
     </form>
    
    
    

    编辑,正如前面指出的那样,我原来的帖子不起作用。我应该写的那篇文章-

     <form name="emailform" id="emailform" ><div>
        <input type="text" id="email" name="email" value="">
          </div>
     </form>
     <input class="btn" type=button onclick="emailSubmit()">
    
    
    
    我刚刚验证了按enter键不会进行提交,并且答案与我当前的代码库一致。

    -“提交按钮用于将表单数据发送到服务器。”

    我所做的是-

     <form name="emailform" id="emailform" method="post"><div>
        <input type="text" id="email" name="email" value="">
        <input class="btn" type=button onclick="emailSubmit()"></div>
     </form>
    
    
    

    编辑,正如前面指出的那样,我原来的帖子不起作用。我应该写的那篇文章-

     <form name="emailform" id="emailform" ><div>
        <input type="text" id="email" name="email" value="">
          </div>
     </form>
     <input class="btn" type=button onclick="emailSubmit()">
    
    
    

    我刚刚验证了按enter键不会进行提交,并且答案与我当前的代码库一致。

    这不起作用。事件处理程序不处理来自
    emailSubmit
    函数的返回值。你说得对,看得太快了。根据需要编辑。那不行。事件处理程序不处理来自
    emailSubmit
    函数的返回值。你说得对,看得太快了。根据需要进行编辑。在文本输入中按enter键仍将正常提交表单。这是一个太脆弱的解决方案。你是对的。我抄得太快了。我不使用method属性在文本输入中输入method属性不会停止按enter键正常提交表单。在文本输入中按enter键仍将正常提交表单。这是一个太脆弱的解决方案。你是对的。我抄得太快了。我不使用method属性在文本输入中输入method属性不会停止输入,正常提交表单。我这样做:$(“#emailform”).submit(函数emailSubmit(){…});包括以返回false结束函数。并且去掉了onsubmit属性。但一切都没有改变。为什么?(与此同时,我刚刚返回了onsubmit,它对其他也有此问题的人有效)我这样做:$(“#emailform”).submit(函数emailSubmit(){…});包括以返回false结束函数。并且去掉了onsubmit属性。但一切都没有改变。为什么?(与此同时,我刚刚返回了onsubmit,它对其他也有此问题的人有效)