2

我需要在服务器上将 HTML 创建为 pdf,并需要来自浏览器的 HTML,其中包含 aform和其他内容。这样做只会在表单中给出一个没有值$el.html()的 HTML 字符串。input我如何获得string包含所有input值的 HTML?

我不想在浏览器上附加克隆,我只对包含所有输入值的 HTML 字符串感兴趣以传递给服务器。

谢谢!

4

2 回答 2

4

我认为这应该有效。只需在调用之前运行它.html()

$("input[type='text']").each(function () {
    var $this = $(this);

    $this.attr("value", $this.val());
});

http://jsfiddle.net/GyrWY/1/

注意:如果您需要对其他输入类型执行此操作,则需要以不同方式处理它们。对于textarea您要设置.text($this.val())的复选框和单选按钮,您需要设置checked属性。select元素,您必须设置selected适当的option.

于 2013-04-11T13:35:40.060 回答
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 并对其进行操作。上面的代码会影响如果用户按下表单的重置按钮会发生什么,当前状态将被视为默认状态。

于 2013-04-11T13:36:09.577 回答