2012-09-06 146 views
0

因此,我正在尝试获取HTML文本框的值或内容。我尝试了各种类型的方法,但都没有工作。根据调试器,代码停止在getelementbyid方法。注释行是我已经尝试过的方法。其中一些返回null,而其中一些返回NaN,其中大部分返回空白页。 帮助非常感谢。从输入框,Javascript,getElementById获取价值

<html> 
<head> 
<script type="text/javascript" > 
function calculateit(){ 
document.open(); 
var number = document.getElementsByName('xyz')[0].value 

//var number = document.getElementsByName("xyz").value; 
//var number = document.getElementsByName('xyz').value; 
//var number = document.getElementsByName("xyz"); 
//var number = document.getElementsByName('xyz'); 

//var number = document.getElementsById("xyz").value; 
//var number = document.getElementsById('xyz').value; 
//var number = document.getElementsById("xyz"); 
//var number = document.getElementsById('xyz'); 

//var number = document.form1.xyz.value; //form 1 was my form name and/or id 


document.writeln(number); 

var newtemp = 0; 

var newtemp = tempera *9/5+32; 

document.write(newtemp); 
} 

</script> 

</head> 

<body> 
<input type="text" id="xyz" name="xyz"> 
<button title="calculate" onclick="calculateit()">calculate </button> 


</body> 
</html> 

回答

2

您正在使用错误的方法。两种广泛支持的javascript方法是“getElementsByTagName”和“getElementById”。请准确注意“getElementById”是如何拼写的。它意味着获得一个具有您指定的确切ID的元素。 “getElementsByTagName”获取特定标签的所有元素,例如“div”。当使用“getElementById”时,你不要索引它或任何东西 - 它会返回null(无法找到)或确切的元素引用。从那里,因为它是一个textarea,你可以使用“.value”来获得当前值,就像你已经是。

ALSO:

后您的页面已经被渲染的可能不应该使用“文件撰写”或其任何相关的写入方法。在你的例子中,这正是你正在做的,所以一旦你得到了“价值”的东西,我会改变它。关键在于“document.write”更适合在页面呈现过程中使用......所以如果您将JavaScript内联到HTML主体或其他东西。例如:

<html> 
<head> 

</head> 
<body> 
    <script type="text/javascript"> 
     document.write("testing"); 
    </script> 
</body> 
</html> 

会很好,但仍不是首选。事实上,你在一个函数中使用它,这是在点击按钮时调用的,这意味着它不在页面渲染过程中,也不应该被使用。更实用的方法是在页面上使用<div>,并在必要时使用“.innerHTML”之类的内容向其添加文本。这样,事情就是动态的,不会在实际文档中被覆盖。

+0

谢谢。 getElementById(“xyz”)。值的工作,我没有显示,因为document.write()。我用innerhtml方法将文本设置为一个div,它工作正常。谢谢。你是一个绅士和一个学者:):P –

2

它是getElementById,而不是getElementsById。