Jquery 捕获表单元素的值以进行打印

Jquery 捕获表单元素的值以进行打印,jquery,printing,Jquery,Printing,我在使用JQuery方面相当有能力,并且通常可以在稍微搞乱一点的情况下完成大部分工作。我试着用谷歌搜索这个问题,但不是我搜索了错误的术语,就是没有发布解决方案 在为订单页面准备print.css文件时,有人问我是否可以删除文本输入并只打印它们的值,同样,一个包含地址的选择菜单 在研究时,我确实遇到了.val()方法(现在称为.fieldValue())和.serializeArray(),因此我想我知道如何提取值,而不是如何打印它来代替表单元素 只是想澄清一下: 例如,“选择”菜单显示默认送达地

我在使用JQuery方面相当有能力,并且通常可以在稍微搞乱一点的情况下完成大部分工作。我试着用谷歌搜索这个问题,但不是我搜索了错误的术语,就是没有发布解决方案

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

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

只是想澄清一下:
例如,“选择”菜单显示默认送达地址的第一行。 对于打印输出,我希望它实际显示整个地址,跨越几行,没有选择菜单

我有下面这个解决方案,它允许我捕获值,但我不知道如何将它们插入表单元素的位置:

谢谢你的帮助


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

以下是JSFIDLE的基本解决方案:

基本上:当发生某些事情时(如单击按钮),循环相应的元素并使用
.replaceWith()
jQuery函数将它们替换为它们的值。。。您可以通过
.val()
获得它。正如您所看到的,这在
以及
元素中都可以正常工作

当然,您可以创建一个更复杂的HTML元素来替换输入,例如
“”+val+“

请注意,这将完全删除表单输入字段,直到重新加载页面。这可能根本不重要(例如,如果您在新选项卡中打开打印页面),或者可能会破坏站点的设计。。。就我个人而言,我更喜欢使用打印CSS表来设置打印页面的样式,例如删除输入框上的边框。但是,如果需要提取
元素中所选选项的值,这可能无法正常工作


如果你想保持页面的完整性,我建议你嵌入一些隐藏的元素来保存文本以便打印,并在点击打印按钮时将输入表单的值复制到这些元素中。。。然后在打印CSS中隐藏所有输入,而是显示支持元素(例如
)。

嗨,Anders,感谢您花时间提供帮助。顺便说一句,我还使用了一些print.css来正确格式化页面。我将使用它来删除文本输入上的边框/阴影,但这有助于从选择菜单输出地址。我添加了window.print();直到您编写的函数结束,但正如您所说,该函数正在从页面中删除输入/选择。单击“打印”按钮将打开浏览器打印对话框窗口,而不是另一个选项卡,因此,一旦用户打印完文档,他们将返回到原始页面,该页面现在看起来很混乱。我已使用另一个段落更新了我的答案,其中介绍了解决此类问题的方法。如果有帮助,或者你需要更多信息,请告诉我。听起来是个不错的解决方案。我尝试了一下,但还没有成功:[我不想让您使用
,但rader normal HTML元素是用CSS隐藏的,在打印时用CSS显示。