0

我有一个简单的登录表单。

<form id="login" action="process/login_process.php" method="POST" name="login" accept-charset="utf-8">
<div><label>Username:</label><input type="text" name="username" data-ideal="required"/></div>
<div><label>Password:</label><input type="password" name="password" data-ideal="required"/></div>
<div><button id="submit" type="submit">Login</button></div>
</form>

我正在使用 JQ-IDEALFORMS 进行表单的验证和整体美观。我很难弄清楚如何通过 ajax 提交表单。这是我到目前为止的javascript:

<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.min.js"></script>
<script src="javascripts/jquery.idealforms.min.js"></script>
<script>
    var options = {
        onSuccess: function() {
            $.post('process/login_process.php', $myform.serialize())
            alert(responseXML);
        }
    };
    var $myform = $('#login').idealforms(options).data('idealforms');
    $('#submit').click(function() {
        $.post('process/login_process.php', $myform.serialize());
        alert('hello');
    });

我遵循了他们文档中非常有限的指示,并将 $.post 添加到选项变量中的 onSuccess 操作中。那是行不通的。然后我尝试向提交按钮添加一个侦听器,但警告框永远不会出现,这意味着侦听器永远不会触发。这应该怎么做?我已经能够提交表单,但是当我这样做时,它会将页面重定向到我的 php 页面,在该页面中我的 XML 正在被回显。出于某种原因,我无法让它回显到我的登录页面。

4

2 回答 2

0

在表单的 action 属性中,您必须返回 false 以防止表单被提交或将操作更改为javascript:void(0)...

<form id="login" action="javascript:submitForm()" method="POST" name="login" accept-charset="utf-8">

而在 JS

var submitForm = function() {
    var options = {
       onSuccess: function() {
          $.post('process/login_process.php', $myform.serialize())
          alert(responseXML);
       }
    };
    var $myform = $('#login').idealforms(options).data('idealforms');
     //not sure this part is needed because Post already call in the success method of idealforms
    $.post('process/login_process.php', $myform.serialize());
    alert('hello');
};
于 2013-04-03T08:34:17.787 回答
0

通过ajax发送表单。

var createForm = $("form#login");
var postData = createForm.serialize();

        $.ajax({
            type: "POST",
            url: "/Offers/CreateOffer",
            data: postData,
            success: function (result, textStatus, jqXhr) {
           }
         });
于 2013-04-03T08:35:49.767 回答