使用INPUT标签的VALUE属性(&它的值)读取HTML表单的innerHTML [英] reading innerHTML of HTML form with VALUE attribute (& its value) of INPUT tags

查看:952
本文介绍了使用INPUT标签的VALUE属性(&它的值)读取HTML表单的innerHTML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 html 表单以及一些输入字段。

而不是通过 document.ipForm.userName读取并发送 input 字段的值.value ,我需要将整个HTML内容发送到html解析器,并将每个输入字段的< name,value> 对提取一些其他程序(以及其他信息)。



但是,当我在JavaScript中完成此操作时(我想要纯JavaScript而不是其他库)

  var contents = document.getElementById(formArea)。innerHTML; 
alert(contents);

doesnot shows value =enteredValue < code>< input /> 字段,即使我输入了一些值。 $ b

我的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>
用户名:< input type =textname =userName>
< / form>
< / div>
< div>其他内容.....< / div>
< div onclick =showInnerHtml()>显示InnerHTML< / div>
< / body>
< / html>

我在这里丢失了什么,或者这是不可能的。



不要叫我MAD。但我正在努力解决这个奇怪的问题。

解决方案

这是因为是填充文本框时的属性,而不是属性。这意味着 .value 可以正常工作,但它不是实际DOM的一部分(例如< input value =... > )。



您需要明确设置它: http://jsfiddle.net/BkjhZ/

  var elems = document .getElementsByName( ipForm)[0] .getElementsByTagName( 输入); 

for(var i = 0; i< elems.length; i ++){
//将属性设置为属性值
elems [i] .setAttribute(value ,elems [i] .value);
}


I have a html form with some input fields.

Instead of reading and sending the values of input fields by document.ipForm.userName.value , I need to send the whole html content to html parser and extract the <name ,value> pair of each input field by some other program( and other information too).

But when i did this in JavaScript(i want pure JavaScript- not other library)

var contents=document.getElementById("formArea").innerHTML;
alert(contents);

It doesnot shows the value="enteredValue" of <input/> fields even if i entered some values.

My HTML File:

<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>

Am i missing something here or this is not possible.

Don't call me MAD. but i am struggling with this strange condition.

解决方案

That's because value is a property when the textbox is filled in, not an attribute. This means that .value works fine, but it's not part of the actual DOM as an attribute (like <input value="...">).

You'd need to set it explicitly: 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);
}

这篇关于使用INPUT标签的VALUE属性(&amp;它的值)读取HTML表单的innerHTML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆