簡體   English   中英

使用jquery ajax在按鈕單擊上發布表單

[英]POST form on button click using jquery ajax

我正在嘗試通過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加載主頁不同。

在click事件處理程序中,您要添加一個Submit事件處理程序,而不是實際提交表單。 由於您是通過按鈕上的ajax上傳數據的,因此只需在按鈕click回調中調用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);
          });
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM