php - 使用ajax加载表单并使用jQuery提交

标签 php javascript jquery html ajax

我已经为此苦苦挣扎了一段时间,但可以找出问题所在。

我有一个索引文件,我在其中使用ajax加载内容(在本例中是存储在add_admin.php中的表单)。我有一个表单,在单击菜单项后可以完美地在 div 中加载(调用 ajax 函数 - 这部分有效)。但是如果我想使用

提交带有 jQ​​uery 后记的表单
$(".loginform").submit(function(e) {});

它不会被调用。我怀疑原因是加载时页面上不存在表单。如果我将表单直接移动到索引页,该功能就可以完美运行。

$(document).ready(function () {
$(".loginform").submit(function(e) {
  data = $("#loginform").serialize();
  password = document.getElementById("user_pass").value;
  passtosubmit=hex_sha512(password);

  data += "&pass=" + encodeURIComponent(passtosubmit);
  password="";

//$.post("modules/process/process_add_admin.php", data);
//alert(data);return false;
$.ajax({
  type: "POST",
      url: "/modules/process/process_add_admin.php",
  data: data,
  success: function() {
    $('#main_panel_container').html("<div id='message'></div>");
    $('#message').html("<h2>Contact Form Submitted!</h2>")
    .append("<p>We will be in touch soon.</p>")
    .hide()
    .fadeIn(1500, function() {
    $('#message').append("<img id='checkmark' src='images/check.png'/>");
  });
 }
});
return false; 
  });
});

要提交的表格

add_admin.php

<div id="contact_form">
<form name="loginform" class="loginform" id="loginform" action="#" method="post">
            <label><strong>Username</strong></label><input type="text" name="username" id="user_login"  size="28" class="input" />
            <br />
            <label><strong>Password</strong></label><input type="password" name="p" id="user_pass"  size="28" class="input"/>
            <br />
            <label><strong>E-mail</strong></label><input type="text" name="email" id="user_email"  size="28" class="email" />
            <br />
            <label><strong>First Name</strong></label><input type="text" name="fname" id="user_fname"  size="28" class="input" />
            <br />  
            <label><strong>Last Name</strong></label><input type="text" name="lname" id="user_lname"  size="28" class="input" />
            <br />  
            <input id="save" class="addbutton" type="submit" value="Add" onclick=""/>
</form>
</div>

谁能给点建议吗?

谢谢

最佳答案

这是我通常做的,在表单标签中添加 onSubmit 事件

<form name="loginform" class="loginform" id="loginform" action="#" method="post" onSubmit="return addContent('loginform');">

然后使用 javascript

 function addContent(frm) {
     //anything you wanna do before you post

     $.post(
            url,
            $('#' + frm).serialize(),
            function (data) {
                result = data;
            }
          )
          .success(function() {
            //add your success proccesses
          })
          .complete(function() { 

          })
          .error(function() {
               alert('An error has occurred.');
          });      

     return false;// this stops the form from actually posting
 }

关于php - 使用ajax加载表单并使用jQuery提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636635/

相关文章:

php - 准备语句 PDO 给出 NULL 结果 n DB

php - 在 Iframe 中丢失 SSL

javascript - 事件对象不是只用 Firefox 定义的(IE 和 Chrome 工作)

javascript - 仅在第一页使用 pace.js(初始站点加载)

javascript - 无法调用php函数

javascript - 使引导行在列内占据全高

javascript - 如何处理javascript中不同元素上的事件以进行响应式设计

jquery - 点击切换div颜色

javascript - 如何使用 jQuery 数据绑定(bind) HTML 属性

php - 在php和android之间传递数据的最简单方法