2016-08-04 67 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")。