使用INPUT标记的VALUE属性(及其值)读取HTML表单的innerHTML

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)