【问题标题】:Unable to submit form after copying from one place to another从一个地方复制到另一个地方后无法提交表格
【发布时间】:2016-01-15 04:37:39
【问题描述】:

按下按钮后,我将#cart_form 从右列转移到左列。

代码如下:

$('#left_col').html($('#cart_form').html());

但我无法提交。我想知道上面的代码是否正确复制了所有标签,从<form></form>

我检查了form元素是否存在,像这样:

if ($('form').length == 0) {
   alert("no");
}

并且它不会提醒“不”,这意味着它存在。我的表单的标记是,

<form action="#" method="POST" id="cart_form">
<table class='header_tbl' style="background:none !important;">
<thead>
    <tr>
        <th>Item Name</th>
        <th>Unit Price</th>
        <th>Qty</th>
        <th>Amount(RM)</th>
        <th></th>
    </tr>
</thead>
.........................
CONTENT APPENDED BY JQueRY
........................

此按钮启动提交:

<input type='submit' name='submit' id='receipt' onclick='print_me()' value='PRINT RECEIPT'/>

如果购物车不为空,这就是它的提交方式。

function print_me(){
     var ele = $(".header_tbl tbody tr").children().length;

     if(ele > 0)
     {
$("#cart_form").submit(function(){
                var data = {
                  "action": "test"
                };
                data = $(this).serialize() + "&" + $.param(data);
                $.ajax({
                  type: "POST",
                  dataType: "json",
                  url: "submit_cart.php",
                  data: data,
                  success: function(data) {
                 alert(data);
                   }
                  });
               });


}else
     {
       alert("Your cart is empty.");
     }
}

【问题讨论】:

  • 以这种方式移动元素会丢失事件处理程序。检查这个问题和答案 - stackoverflow.com/questions/10716986/…
  • 他并没有失去他的事件处理程序,因为 onclick 事件是直接在按钮上使用的
  • 同意。他只复制内部html。这就是为什么那里没有表单标签的原因。他应该抓取外部 html:$('#cart_form')[0].outerHTML

标签: jquery forms


【解决方案1】:

$("#yourform").html() 正在复制没有表单标签的表单标签内的内容。

尝试将表单放入 div

<div id="divID">
<form action="#" method="POST" id="cart_form">
<table class='header_tbl' style="background:none !important;">
<thead>
    <tr>
        <th>Item Name</th>
        <th>Unit Price</th>
        <th>Qty</th>
        <th>Amount(RM)</th>
        <th></th>
    </tr>
</thead>
</form>
</div>

然后这样做:

$('#left_col').html( $("#divID").html() );

【讨论】:

  • 仍然不提交
  • 尝试检查您的 html 代码以查看是否复制了标签表单。我认为当您执行 $("#yourform").html() 时,它正在复制表单标签内的内容
  • 我猜是一样的..但是我如何检查for标签是否存在?
  • 如果您在谷歌浏览器上右键单击您的页面并选择最后一个选项检查元素
【解决方案2】:

试试$('#left_col').html( $('#cart_form')[0].outerHTML )

【讨论】:

  • 不追加到新目的地
  • 在将其移至左侧之前,您确定页面上有该表单吗?你可以在移动之前运行if ($('#cart_form').length == 0) { 检查吗?
  • 是的,我有表单元素,运行 ($('form').length == 0) {
猜你喜欢
  • 2014-07-19
  • 2013-01-18
  • 2014-07-29
  • 1970-01-01
  • 2013-07-12
  • 1970-01-01
  • 1970-01-01
  • 2021-04-06
  • 1970-01-01
相关资源
最近更新 更多