jquery 动态生成form提交数据的例子, 及其 form is not connected 错误解决

原贴:https://blog.youkuaiyun.com/bigtree_3721/article/details/71633273

jquery 动态生成form提交数据的例子, 及其 form is not connected 错误解决

前端JS页面例子:

mp.jsp


  1. manipulationHistory.downloadData = function() {  
  2.     //定义一个form表单  
  3.     var myform = $("<form></form>");  
  4.     myform.attr('method','post')  
  5.     myform.attr('action',"/manipulationHistory/exportManipulationInfo");  
  6.       
  7.     var myProductId = $("<input type='hidden' name='productId' />")  
  8.     myProductId.attr('value',$("#query-param-product-id").val());  
  9.       
  10.     var myPurchaseOrderId = $("<input type='hidden' name='purchaseOrderId' />")   
  11.     myPurchaseOrderId.attr('value',$("#query-param-dispatched-po").val());  
  12.       
  13.     var myWarehouseId = $("<input type='hidden' name='warehouseId' />")   
  14.     myWarehouseId.attr('value', $("#query-param-warehouse-id").val());  
  15.       
  16.     var myRelatedOrderId = $("<input type='hidden' name='relatedOrderId' />")   
  17.     myRelatedOrderId.attr('value', $("#query-param-order-id").val());  
  18.       
  19.     var myUpdateReason = $("<input type='hidden' name='updateReason' />")   
  20.     myUpdateReason.attr('value', $("#query-param-update-reason").val());  
  21.       
  22.     var myStartTime = $("<input type='hidden' name='startTime' />")   
  23.     myStartTime.attr('value', $("#operate-time-start-value").val());  
  24.       
  25.     var myEndTime = $("<input type='hidden' name='endTime' />")   
  26.     myEndTime.attr('value', $("#operate-time-end-value").val());  
  27.       
  28.     myform.append(myProductId);  
  29.     myform.append(myPurchaseOrderId);   
  30.     myform.append(myWarehouseId);   
  31.     myform.append(myRelatedOrderId);   
  32.     myform.append(myUpdateReason);   
  33.     myform.append(myStartTime);   
  34.     myform.append(myEndTime);  
  35.     myform.appendTo('body').submit(); //must add this line for higher html spec       
  36.    };  

如果你的浏览器报错:

submission canceled because the form is not connected ,

则要加入上面的这行

 myform.appendTo('body').submit();

或者用下面的代码也是一样的。

  $("body").append(myform);
   myform.submit();

说一下上面的含义:
$("body") 是一个选择器,jQuery 会从 DOM 顶端开始搜索,直到找到标签为 body 的元素。

而 $(document.body) 中的 document.body 已经是一个 DOM 对象,jQuery 可以直接使用此元素。

所以它们的区别在于效率,$(document.body) 高于 $("body")

但一般情况下在普通单页面是体现不出来的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值