2

サーバー上でHTMLをpdfに作成する必要があり、ブラウザからのHTMLが必要formです。実行すると、フォームに値の$el.html()ない HTML 文字列が返されます。すべての値が含まれinputている HTMl を取得するにはどうすればよいですか?stringinput

ブラウザにクローンを追加したくありません。サーバーに渡すすべての入力値を含む 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 に答える