我需要在服務器上創建一個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