如何从动态元素发布表单
Posted
技术标签:
【中文标题】如何从动态元素发布表单【英文标题】:How to post form, from a dynamic element 【发布时间】:2019-10-21 15:20:10 【问题描述】:我有一个动态表,其中填充了一个 href 链接,每个链接都有自己的值的数据元素。 还有一个表单(不是动态生成的),它具有隐藏的输入类型,将由链接数据值设置。
我可以使用正确的数据发布带有隐藏输入值的表单,并且操作页面加载正常,但无法接收任何发布数据。 似乎动态元素可以发布表单,但没有发送数据。
jQuery(document).ready(function()
jQuery(document).on("click", ".linksollicituddetall", function()
var intIdSollicitud = jQuery(this).data("idsol");
if(intIdSollicitud.toString().length > 0)
jQuery("#idsol").val(intIdSollicitud);
jQuery("#frmDetallSollicitud").submit();
);
);
<body>
<form id="frmDetallSollicitud" method="POST" action="DetallSollicitud.asp">
<input type="hidden" name="idsol" id="idsol" value="-1">
</form>
</body>
我要实现的是点击链接时,输入类型hidden填入链接的数据,然后提交表单。在下一页(操作 URL)中接收帖子数据。
【问题讨论】:
代码对我来说似乎很好,它应该可以工作。您是否调试过代码以查看该值被设置为隐藏字段?您如何确定表单没有发布值?表单内的隐藏字段是否有问题? 我使用 fiddler 调试它,发送的表单没有发布数据。而且在目标页面中,Request.form 到达时也是无效的。隐藏字段的形式是 yes。 请发布 html。不能假设表单正确完成,也不能假设.linksollicituddetall
、#idsol
、#frmDetallSollicitud
是表单控件。许多 OP 尝试在 div 上使用 value 属性并期待奇迹。
【参考方案1】:
嗯,问题是,链接在发送表单之前启动了 href,所以问题不是阻止默认。
正确的代码是:
jQuery(document).on("click", ".linksollicituddetall", function(e)
e.preventDefault();
var intIdSollicitud = jQuery(this).data("idsol");
if(intIdSollicitud.toString().length > 0)
jQuery("#idsol").val(intIdSollicitud);
jQuery("#frmDetallSollicitud").submit();
);
【讨论】:
以上是关于如何从动态元素发布表单的主要内容,如果未能解决你的问题,请参考以下文章