我需要在服务器上将HTML创建为pdf,并且需要来自浏览器的HTML,其中包含form
和其他内容。执行$el.html()
只会在表单中提供不带input
值的HTML字符串。如何获取包含所有string
值的HTMl input
?
我不想在浏览器上附加克隆,我只对HTML字符串感兴趣,并将所有输入值传递给服务器。
谢谢!
答案 0 :(得分:4)
我认为这应该有效。只需在致电.html()
:
$("input[type='text']").each(function () {
var $this = $(this);
$this.attr("value", $this.val());
});
注意:如果您需要为其他输入类型执行此操作,则需要以不同方式处理它们。对于textarea
,您需要设置.text($this.val())
,对于复选框和单选按钮,您需要设置checked
属性。 select
元素,您必须设置相应selected
的{{1}}属性。
答案 1 :(得分:4)
也许会这样做:
$("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并对其进行操作。上面的代码会影响用户按下表单的“重置”按钮时发生的情况,当前状态将被视为默认状态。