3

我在使用 JQuery 方面相当有能力,通常可以让大多数事情在一些混乱的情况下工作。我尝试用谷歌搜索这个问题,但要么我搜索了错误的术语,要么没有发布的解决方案。

在为订单页面准备 print.css 文件时,有人问我是否可以删除文本 INPUTS 并只打印出它们的值,同样是一个包含地址的 SELECT 菜单。

在研究时,我确实遇到了 .val() 方法 - 现在称为 .fieldValue() - 和 .serializeArray() 所以我想我知道如何提取值,而不是如何打印它来代替表单元素。

需要说明的是:
例如,SELECT 菜单显示默认送货地址的第一行。对于打印输出,我希望它能够跨多行显示整个地址,并且没有 SELECT 菜单。

我在下面有这个解决方案,它允许我捕获值,但我不知道如何插入它们来代替表单元素: 使用 jQuery 打印 HTML 表单

谢谢你的帮助!


编辑捕获的值应该只插入到打印输出中,而不是替换 html 中的表单元素。

4

1 回答 1

1

这是作为 jsfiddle 的基本解决方案:http: //jsfiddle.net/2mBSS/15/

基本上:当发生某些事情时(例如单击按钮),循环遍历相应的元素并使用.replaceWith()jQuery 函数将它们替换为它们的值......你用.val(). 如您所见,这适用<select>于以及<input>元素。

您当然可以创建一个更复杂的 HTML 元素来替换输入,例如"<p>" + val + "</p>".

请注意,这将完全删除表单输入字段,直到重新加载页面。这可能根本不重要(例如,如果您在新选项卡中打开打印页面)或者它可能会破坏您网站的设计......我个人更喜欢使用打印 CSS 表来设置打印页面的样式,例如删除输入框的边框。<select>但是,如果您需要提取元素中选定选项的值,这可能效果不佳。

如果您想保持页面完整,我建议您嵌入一些隐藏元素来保存文本以进行打印,并在单击打印按钮时将输入表单的值复制到它们......然后在您的打印 CSS 中隐藏所有输入,而是显示支持元素(例如<p><span>)。

于 2012-09-19T12:14:16.623 回答