整数值是否在输入文本字段内表现为字符串?

时间:2014-07-11 11:10:47

标签: javascript html

我正在尝试使用js将十进制值转换为十六进制值。我这里有两个输入文本字段。一个用于输入值,另一个用于输出值。我先尝试过这样的事情:

<html>
<body>
<input type="text" placeholder="input hexadecimal" id='mytxt' width="300" height="200">
<input type="button" value="click me" id='mybtn'>
<input type='text' id='here' >
<script>
function init(){
  var field=document.getElementById('mybtn');
  field.addEventListener('click',getvalue,false);
}
function getvalue(){
var input=document.getElementById('mytxt');

var x=input.value.toString(16).toUpperCase();
alert(x);
var here=document.getElementById('here');
here.value=x;

}

window.onload=init;
</script>
</body>
</html>

没用。我的意思是输出上的整数值保持不变,就像我尝试15000时一样,它仍然是15000

然后我改变了我的代码。

我使用parseInt解析输入值,然后应用toString()方法。现在它正如我预期的那样15000,它以十六进制给我0x3A98

var y=parseInt(input.value);
var x=y.toString(16).toUpperCase();

关于这篇文章我有两个问题:

1。为什么整数值在文本字段中充当字符串值。这是默认情况吗?

2。我已尝试innerHTML在输出文本字段中显示值。它没有用。为什么innerHTML方法不适用于输入文本字段?

2 个答案:

答案 0 :(得分:2)

html输入attrtibute值是字符串类型值。

因此,当在javascript上使用时,将它们解析为您想要的类型是最好的实践,比如parseInt告诉javascript这是一个整数值。

你能显示你正在使用的innerHTML的代码吗?

答案 1 :(得分:1)

  1. 是。这是由dedault。 JavaScript value总是返回string所以(就像Tiago Reis所写的那样)将它解析为我们需要的类型是一种好习惯。

  2. innerHTML显示开始和结束标记之间的内容(例如<div><p>test</p></div> div的innerHTML是<p>test</p>)。 <input>的值不在此标记内,标记本身为空,因此使用它将返回空字符串。