我需要在服务器上创建一个pdf格式的HTML,并且需要浏览器中包含form
和其他内容的HTML。做$el.html()
只是在表单中给出一个没有input
值的HTML字符串。我如何获得包含所有input
值的HTMl string
?.如何获得使用jQuery的输入值的HTML字符串?
我不想追加在浏览器上的克隆,我只是感兴趣的HTML字符串与所有输入值传递到服务器。
谢谢!
我需要在服务器上创建一个pdf格式的HTML,并且需要浏览器中包含form
和其他内容的HTML。做$el.html()
只是在表单中给出一个没有input
值的HTML字符串。我如何获得包含所有input
值的HTMl string
?.如何获得使用jQuery的输入值的HTML字符串?
我不想追加在浏览器上的克隆,我只是感兴趣的HTML字符串与所有输入值传递到服务器。
谢谢!
我认为这应该工作。只要您拨打.html()
之前运行此:
$("input[type='text']").each(function() {
var $this = $(this);
$this.attr("value", $this.val());
});
注意:如果需要对其它输入类型做到这一点,他们将需要不同的处理。对于textarea
,您将设置.text($this.val())
,对于复选框和单选按钮,您需要设置checked
属性。 select
元素,则必须设置适当的option
的selected
属性。
您应该使用':input'选择器来获取所有类型的输入,例如文本区域,选择菜单和复选框。 – Barmar 2013-04-11 13:37:09
@Barmar但是'
你只是打败了我! :) – 2013-04-11 13:39:49
也许这将做到这一点:
$("input").each(function() {
$(this).attr("value", $(this).val());
});
$("textarea").each(function() {
$(this).text($(this).val());
});
$("select option").each(function() {
if ($(this).is(":selected")) {
$(this).attr("selected", "selected");
} else {
$(this).removeAttr("selected");
}
});
$("checkbox").each(function() {
if ($(this).is(":checked")) {
$(this).attr("checked", "checked");
} else {
$(this).removeAttr("checked");
}
});
从而为所有类型的输入,以匹配其当前状态的适当DOM属性。我希望我没有错过任何。
您可能想要对整个DOM进行克隆并对其进行操作。上述代码会影响用户按下表单的重置按钮时发生的情况,当前状态将被视为默认状态。
真棒,谢谢,这个作品! – user1323136 2013-04-11 13:38:18
编辑我的答案来处理不使用'value'属性的输入类型。 – Barmar 2013-04-11 13:49:08
@Barmar - 嗨,它不适用于离子复选框,如何做它相同 – surendher 2016-04-11 10:34:46
jquery clone()可能对你有好处 – 2013-04-11 13:32:26
所以你试图产生一个基本上是网页当前状态(包括输入值)的图片的PDF?或者你是否想制作一个实际上有HTML代码的PDF? – nnnnnn 2013-04-11 13:33:28
是的,我正在尝试创建一个PDF,它是当前网页的状态。 – user1323136 2013-04-11 13:34:15