使用INPUT标签的VALUE属性(&它的值)读取HTML表单的innerHTML [英] reading innerHTML of HTML form with VALUE attribute (& its value) of INPUT tags
问题描述
我有一个 html
表单
以及一些输入字段。
而不是通过 document.ipForm.userName读取并发送
,我需要将整个HTML内容发送到html解析器,并将每个输入字段的 input
字段的值.value < 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属性(&它的值)读取HTML表单的innerHTML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!