javascript Javascript读取html输入值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/14228437/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-26 21:04:58  来源:igfitidea点击:

Javascript reading html input values

javascripthtml

提问by Piccolo

I am trying to make a Javascript script that asks the user to enter details about a book, and then it generates an MLA style citation for it. The following is my HTML code.

我正在尝试制作一个 Javascript 脚本,要求用户输入有关一本书的详细信息,然后为其生成一个 MLA 风格的引文。以下是我的 HTML 代码。

<input type="text" value="Author last name" id="lname"/><br />

<input type="text" value="Title of book" id="booktitle"/><br />


<input type="text" value="City of Publication" id="pubcity"/><br />

<input type="text" value="Publisher" id="pub"/><br />

<input type="text" value="Year of Publication" id="pubyear"/><br />
<input type="text" value="Number of footnote" id="footnote"/>
<br />('Number of footnote' only applicable if you plan to generate a footnote citation.)<br />

<button type="button" onclick="generateBookFootnote()">Generate Footnote</button>
<button type="button" onclick="generateBookEndnote()">Generate Endnote</button> 
</form>
<p id="cite"></p>

And my Javascript is as follows.

我的Javascript如下。

function generateBookFootnote()
{
    //I was just trying to do this, which I got from another StackOverflow question. Result below.
    var fname = document.getElementById('fname');
    var lname = document.getElementById('lname');
    var booktitle = document.getElementById('bookititle');
    var pubcity = document.getElementById('pubcity');
    var pubyear = document.getElementById('pubyear');
    var pub = document.getElementById('pub');
    var footnote = document.getElementById('footnote');

    document.getElementById("cite").innerHTML=document.getElementById( fname ); 

};

So I've tried many approaches from the Internet, trying to just get it to print out the contents of the text box fname. var fname = document.getElementById('fname');prints out [object HTMLInputElement]not the actual value. The document.getElementById("cite").innerHTML=document.getElementById( fname );doesn't print anything when I run the function. Those are the only two solutions I have found on the Internet so far.

所以我从网上尝试了很多方法,试图让它打印出文本框的内容fnamevar fname = document.getElementById('fname');打印出的[object HTMLInputElement]不是实际值。在document.getElementById("cite").innerHTML=document.getElementById( fname );当我运行该功能不显示任何信息。到目前为止,这是我在 Internet 上找到的仅有的两种解决方案。

回答by Danilo Valente

That's because document.getElementByIdreturns an object of type HTMLElement, which is the element that has the specified ID. To access its value, use this instead:

这是因为document.getElementById返回一个 HTMLElement 类型的对象,它是具有指定 ID 的元素。要访问它的值,请改用它:

var fname = document.getElementById('fname').value;

I suggest you to take a look at HTMLElementand getElementByIdMDN documentations

我建议您查看HTMLElementgetElementByIdMDN 文档

This issue also applies to either getElementsByClassName, getElementsByTagNameand getElementsByNamemethods, although they all return an array with the matching elements.

此问题也适用于getElementsByClassNamegetElementsByTagNamegetElementsByName方法,尽管它们都返回具有匹配元素的数组。

Thus, your function should be:

因此,您的功能应该是:

function generateBookFootnote()
{
    var fname = document.getElementById('fname').value;
    var lname = document.getElementById('lname').value;
    var booktitle = document.getElementById('bookititle').value;
    var pubcity = document.getElementById('pubcity').value;
    var pubyear = document.getElementById('pubyear').value;
    var pub = document.getElementById('pub').value;
    var footnote = document.getElementById('footnote').value;

    document.getElementById("cite").innerHTML = document.getElementById( fname ).value; 

};

回答by Andbdrew

after you select an input element by id with something like:

在您通过 id 选择一个输入元素后,例如:

var fname = document.getElementById('fname');

you can see its current value through the valueproperty. for example:

您可以通过该value属性查看其当前值。例如:

console.log(fname.value);

回答by mbharanidharan88

Check your code properly. You've used the object instead of id.

正确检查您的代码。您已经使用了对象而不是 id。

var fname = document.getElementById('fname');

document.getElementById("cite").innerHTML=document.getElementById( fname );

Use this instead

改用这个

document.getElementById("cite").innerHTML=document.getElementById('fname');