【发布时间】: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