gti*_*333 8 html javascript innerhtml
我有html
form
一些输入字段.
我不需要读取和发送input
字段值,而是document.ipForm.userName.value
将整个html内容发送到html解析器,并<name ,value>
通过其他程序(以及其他信息)提取每个输入字段对.
但是当我在JavaScript中这样做时(我想要纯JavaScript而不是其他库)
var contents=document.getElementById("formArea").innerHTML;
alert(contents);
Run Code Online (Sandbox Code Playgroud)
它不列入显示的value="enteredValue"
的<input/>
领域,即使我输入了一些值.
我的HTML文件:
<html>
<head>
<script type="text/javascript">
function showInnerHtml(){
var contents=document.getElementById("formArea").innerHTML;
alert(contents);
}
</script>
</head>
<body>
<div id="formArea">
<form name="ipForm" >
UserName : <input type="text" name="userName">
</form>
</div>
<div> other contents..... </div>
<div onclick="showInnerHtml()">Show InnerHTML</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我在这里遗漏了什么,或者这是不可能的.
不要叫我MAD.但我正在努力应对这种奇怪的情况.
pim*_*vdb 14
那是因为value
填充文本框时的属性,而不是属性.这意味着.value
工作正常,但它不是实际DOM作为属性(如<input value="...">
)的一部分.
你需要明确地设置它:http://jsfiddle.net/BkjhZ/.
var elems = document.getElementsByName("ipForm")[0].getElementsByTagName("input");
for(var i = 0; i < elems.length; i++) {
// set attribute to property value
elems[i].setAttribute("value", elems[i].value);
}
Run Code Online (Sandbox Code Playgroud)