按钮上的POST表单使用jquery ajax单击

时间:2015-03-25 02:19:02

标签: php jquery ajax html-form-post

我试图通过ajax加载表单并提交表单,然后将回复写入" #pagediv"。

这是我的工作代码

    $(function() {              
    $.ajax({
        url: "<?php echo $_SERVER['PHP_SELF']; ?>",
        type: "GET",
        data: { <?php echo $ajxparam; ?> },
        dataType: "html",
        cache: false
    }).done(function( msg ) {
        $("#pagediv").html(msg);
        $("#savebtn").click(function(event){ event.preventDefault(); $("#testform").submit(); });       
    }).fail(function() {
        $("#pagediv").html( "Request Failed. Please Try Again Later." );
    });
});

表格提交部分的修改代码(参见下文);它没用,我错过了什么吗?

    $(function() {              
    $.ajax({
        url: "<?php echo $_SERVER['PHP_SELF']; ?>",
        type: "GET",
        data: { <?php echo $ajxparam; ?> },
        dataType: "html",
        cache: false
    }).done(function( msg ) {
        $("#pagediv").html(msg);
        $("#savebtn").click(function(event){
            event.preventDefault();
            $("#testform").submit(function(evt) {
              evt.preventDefault();
              var $form = $( this ),
                  url = $form.attr( 'action' );
              var posting = $.post( url, $(this).serialize() );
              posting.done(function( dte ) {
                $("#successdiv").html(dte);
              });
            });
        });
    }).fail(function() {
        $("#pagediv").html( "Request Failed. Please Try Again Later." );
    });
});

注意: - 表单POST URL与ajax加载主页面不同。

1 个答案:

答案 0 :(得分:1)

在您的点击事件处理程序中,您要添加提交事件处理程序而不是实际提交表单。由于您在按钮上通过ajax上传数据,因此只需在按钮单击回调中调用ajax。

    $("#savebtn").click(function(event){
          event.preventDefault();
          var $form = $("#testform"),
              url = $form.attr( 'action' );
          var posting = $.post( url, $form.serialize() );
          posting.done(function( dte ) {
            $("#successdiv").html(dte);
          });
    });