【问题标题】:Form submission using jQuery ajax使用 jQuery ajax 提交表单
【发布时间】:2013-10-28 15:05:57
【问题描述】:

表单未使用 ajax.form 提交点击 li。给我一些解决方案

我的js代码在这里

$(document).ready(function(){

$('#sortable li').click(function() {

$("#frmgallery").submit(function(event) {
    event.preventDefault();
    var formdata = $(this).serialize();
    alert(formdata);
    $.ajax({
        type: "POST",
        url: "gallery.php",
        data: formdata,
        success: function(){alert('success');}
    });
});

});

HTML 在这里

 <form method="post" enctype="multipart/form-data" id="frmgallery" name="gallery" action="<?php get_template_directory();?>admin.php?page=gallery/gallery.php">

<ul id="sortable">

Query

<li  class="ui-state-default" name='liindex' id="<?php echo $row['glryRecordId'];?>" >
<span style="display:none"><?php echo $row['glryRecordId'];?></span>
<img class='thumbnail' alt=''  src='<?php echo get_site_url();?>/wp-content/themes/townsley/upload/<?php echo $row['glryName']; ?>' width='80' height='60' 
 style="border: 1px solid #D3D3D3;padding:2px;"/><input type="hidden" value="<?php echo $row['glryRecordId'];?>" name="recordId[]" />
    <a href="<?php get_template_directory();?>admin.php?page=gallery/gallery.php&delid=<?php echo $row['glryRecordId'];?>" style="display:block;text-align:center"  title="DELETE this image from the record" class="arial-red">Remove</a>
</li>


</ul>
</form> 

请帮帮我 谢谢

ajax jquery javascript

【问题讨论】:

  • #sortable li 是什么?您需要显示您的 html。
  • 谨慎使用function(event),更喜欢使用非保留名称,例如function(e)
  • 请格式化您的 HTML,使其更易于阅读。这也会帮助你自己。此外,清理或删除多余的 css 类。我无法想象您的 ul 需要可排序(或选择更多“语义”名称)。从代码看来,您必须先单击ul#sortable,然后才能附加submit 事件处理程序,这是故意的吗?

标签: javascript ajax jquery


【解决方案1】:

您也应该在您的问题中提供您的 HTML,但据我所知,您在 event 回调中有 event,实际上没有任何东西可以启动 submit 事件。所以基本上你应该考虑这样的事情:

$(document).ready(function(){

    $('#sortable li').click(function() {
        event.preventDefault();
        var formdata = $("#frmgallery").serialize();
        alert(formdata);
        $.ajax({
            type: "POST",
            url: "gallery.php",
            data: formdata,
            success: function(){alert('success');}
        });
    });

});

【讨论】:

    【解决方案2】:

    您可以使用来自Ajax Form Plugin 的 ajaxForm/ajaxSubmit 函数或 jQuery 序列化函数。

    示例:

    $("#frmgallery").ajaxForm({url: 'gallery.php', type: 'post'})
    

    $("#frmgallery").ajaxSubmit({url: 'gallery.php', type: 'post'})
    

    ajaxForm 将在按下提交按钮时发送。 ajaxSubmit 立即发送。

    【讨论】:

    • 我没有使用提交按钮。点击 li 时提交表单
    【解决方案3】:

    您是否尝试过在提交函数结束时返回 false?

        $("#frmgallery").submit(function(e) {
            e.preventDefault();
            var formdata = $(this).serialize();
            alert(formdata);
            $.ajax({
                type: "POST",
                url: "gallery.php",
                data: formdata,
                success: function(){alert('success');}
                error: function(){alert('error');}
            });
            return false;
        });
    $('#sortable li').click(function() {
    
         $("#frmgallery").submit();
    });
    

    同时发布您从$.ajaxcall 获得的信息

    【讨论】:

      【解决方案4】:
      $("#frmgallery").ajaxForm({url: 'gallery.php', type: 'post'})
      

      您是否尝试过在提交函数结束时返回 false?

          $("#frmgallery").submit(function(e) {
              e.preventDefault();
              var formdata = $(this).serialize();
              alert(formdata);
              $.ajax({
                  type: "POST",
                  url: "gallery.php",
                  data: formdata,
                  success: function(){alert('success');}
                  error: function(){alert('error');}
              });
              return false;
          });
      $('#sortable li').click(function() {
      
           $("#frmgallery").submit();
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-30
        • 2013-04-25
        • 1970-01-01
        相关资源
        最近更新 更多