2016-08-04 19 views
0

我試圖將整個頁面保存爲HTML文件,將所有已寫入的值都包含在輸入中。我試過這個:獲取輸入的頁面包含值的整個HTML

$("#content").html(); 

但它不會保存輸入值。

$("#content").get(0).outerHTML; 
$("#content").prop('outerHTML'); 

雖然工作原理相同,但仍不能保存輸入值。我需要在頁面上保存所有內容的功能。

+1

的輸入值是性質並不影響HTML。您需要手動獲取所有輸入的所有值,並使用您構建的HTML字符串更新它們。 –

+0

@ rory'value'屬性是HTML的一部分,儘管... – Teemu

+1

這是真的,但在更改值時它不會直接更新。看到這個例子:https://jsfiddle.net/LmxLygcf/。無論您在輸入中設置了什麼,控制檯中顯示的值始終爲「foo」。 –

回答

2

您需要首先設置每個輸入值:

$('#content input').each(function() { 
    $(this).attr('value', $(this).val());//set up all the input values 
}); 

var html = $('#content').html(); //now from here you can get input values 
+0

很酷的答案!它工作正常。多謝,夥計! –

+0

很高興幫助。 ☺ –

0

你可以嘗試:

$("html").html(); 

如果你也想捕捉HMTL標籤,你可以將它們串聯到HTML這樣的:

function getPageHTML() { 
    return "<html>" + $("html").html() + "</html>"; 
} 

你必須保存在某個變量的輸入值像

var input=$("#input-id").val() 
0

當輸入被用戶更改時,它的.value正在更改。 .value不在DOM中,它在JS中。因此,您需要做的是將.value轉換爲value=以便能夠在字符串中獲取它。下面是如何完成它:

$('input').each(function(index, input){input.setAttribute('value', input.value)}); 

現在試圖讓HTML;)

PS:你也可以在這裏修改選擇,不要讓所有的投入(如type="password")。