提交位于同一页面上的表单,而不重新编辑页面

use*_*879 1 html javascript php jquery

所以这里是一场令人困惑的战斗.我想提交一个与我的php验证在同一页面上的表单.

HTML

 <form id="form">
  //fields
  <input type="submit" id="submit">
  </form>

<?php
/ /check if form is good
?>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$("#actvpost").submit(function(){
    //code
  return false;
});
Run Code Online (Sandbox Code Playgroud)

当我点击提交页面仍然刷新我怎么能只是发送数据而不使用外部页面

我可以没有jquery但它会刷新页面,我想附加jquery,以便它不刷新页面.

Aus*_*tin 5

您在jQuery选择器中引用时,表单的ID actvpost不应该是.formactvpost

您的提交功能不应该return false,但应该使用event.preventDefault:

$("#actvpost").submit(function( event ){
    event.preventDefault();
    // your code
});
Run Code Online (Sandbox Code Playgroud)

event对象

所有事件都event在触发器上传递一个对象作为它们的第一个参数.该对象包含许多有关事件的有用属性,例如event.targetevent.type(返回click,keyup等等).jQuery还使用诸如的有用方法扩展了这个对象preventDefault()

虽然没有必要,但我建议将event.preventDefault()早期(如果不是第一个)放在处理程序中.这也不是必要的,但如果您打算在将来编写更复杂的代码,这是一个很好的做法.组织是关键,一切都应该遵循某种共同的惯例.使用任何约定进行编码时,解决问题要容易得多,更不用说常见的约定了.

实际上,如果没有新的HTTP请求,您就无法运行PHP,因此,您可能希望提交之前仅使用javascript验证,并将服务器端验证作为最后一道防线.要将表单提交到PHP脚本,您可能需要:

  • 使用AJAX(jQuery使这很简单)
  • 提交到iframe,同时在Javascript中收听其"load"事件以获取响应

这两个都会发出新的HTTP请求,并在javascript中提供响应.