-1

我有以下使用 ajax 和 jquery 提交表单的 javascript。

$(function() {
    $("#signform").submit(function() {
        alert();
        $.ajax({
            type: "POST",
            url: "page/sign.php",
            data: { mail: $("#inputEmail").val(), 
                    pass: $("#inputPassword").val(),
                    nick: $("#inputNick").val(),    
                    date: $.datepicker.formatDate('yy/mm/dd', new Date()) },
            sucsess: handler,
            error: function(err) { alert('error: ' + err.status) }
        });
    });

    function handler(var){
        $('#message').html(val);
    }
});

和 html 代码在这里,使用 bootstrap !

<form class="form-horizontal" id="signform">

// ... something codes

  <div class="form-group">
    <div class="col-offset-2 col-lg-10" align="center">
      **<button type="submit" class="btn btn-default">Sign in</button>** &nbsp;
      <a href="index.php"><button type="button" class="btn">Cancel</button></a>
    </div>
  </div>

</form>

当我按下提交按钮时,它进入了索引页面。

我不知道出了什么问题。

js代码在sign.php的同一页面中

4

2 回答 2

2

您没有阻止提交按钮的默认操作,您可以调用event.preventDefault(),或从提交处理程序返回 false 来解决此问题

同样在handler方法中调用var了无效的参数

$(function() {

    $(document).on('submit', "#signform", function(e) {
        $.ajax({
            type: "POST",
            url: "page/sign.php",
            data: { 
                mail: $("#inputEmail").val(), 
                pass: $("#inputPassword").val(),
                nick: $("#inputNick").val(),    
                date: $.datepicker.formatDate('yy/mm/dd', new Date()) 
            },
            success: handler,
            error: function(err) { 
                alert('error: ' + err.status) 
            }

        });
        return false; //this will prevent the default action and will stop the event propagation
        //if you do not want to stop event propagation you can use
        //e.preventDefault();
    });

    function handler(val){ //also invalid variable name var here
        $('#message').html(val);

    }
});
于 2013-08-06T02:40:14.857 回答
0

试试这个,对你有更好的帮助,这里U=页面URL,F=页面方法,D=数据

U=sign.php,

F=页,

D="mail: '+$("#inputEmail").val()+',pass: '+$("#inputPassword").val()+',nick: '+$("#inputNick") .val()+',date: '+$.datepicker.formatDate('yy/mm/dd', new Date())+'"

// function for call page method using ajax


     function Operation(U, F, D) {
        $.ajax({
            type: "POST",
            url: U + '/' + F,
            data: D,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: false,
            cache: false,
            success: function (r) {
                var str = r.d;
        });
    }
于 2013-08-06T02:45:08.220 回答