1

所以这里是一场混乱的战斗。我想提交一个与我的 php 验证在同一页面上的表单。

html

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

<?php
/ /check if form is good
?>

jQuery

$("#actvpost").submit(function(){
    //code
  return false;
});

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

我可以在没有 jquery 的情况下做到这一点,但它会刷新页面,我想将 jquery 附加到它不会刷新页面。

4

3 回答 3

5

当您在 jQuery 选择器中引用时,表单的 idactvpost不应该是。formactvpost

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

$("#actvpost").submit(function( event ){
    event.preventDefault();
    // your code
});

event对象_

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

尽管没有必要,但我确实建议将event.preventDefault()早期(如果不是首先)放在您的处理程序中。同样,这不是必须的,但如果您计划在未来编写更复杂的代码,这是一个很好的做法。组织是关键,一切都应该遵循某种共同的惯例。当您使用任何约定进行编码时,解决问题要容易得多,更不用说通用约定了。

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

  • 使用 AJAX(jQuery 让这一切变得简单)
  • 提交到 iframe,同时监听其“加载”事件以获取 Javascript 中的响应

两者都发出新的 HTTP 请求并在 javascript 中提供响应。

于 2012-07-31T03:27:21.203 回答
1

也许:

$("#actvpost").submit(function (event) {
  event.preventDefault();
  // here you may by your self send request and get response
});

也许你会使用 jQuery Form Plugin 之类的东西并使用ajaxForm函数。

于 2012-07-31T03:26:30.127 回答
0

代替:

<form id="form">

和:

<form id="actvpost">
于 2012-07-31T03:54:11.670 回答