document.getElementById()。value不设置该值

时间:2012-11-25 17:27:26

标签: javascript html

浏览器是铬(在ubuntu下)

这是一大块代码:(当然)警报消息显示正确的值。但要点 element没有得到正确的值,它实际上是空的。谁能告诉我为什么?

以下是如何定义points元素。

<input type='number' id='points' value='0'/> 

以下是javascript代码应该如何填充它。

alert(request.responseText);

document.getElementById("points").value=request.responseText;

6 个答案:

答案 0 :(得分:12)

您的回答几乎肯定是一个字符串。您需要确保它转换为数字:

document.getElementById("points").value= new Number(request.responseText);

您可以仔细查看responseText。听起来你得到一个包含引号的字符串。如果您通过AJAX获取JSON数据,则可能会通过JSON.parse()获得更一致的结果。

document.getElementById("points").value= new Number(JSON.parse(request.responseText));

答案 1 :(得分:4)

根据我对Chrome的测试:

如果您将一个number输入设置为一个数字,那么它可以正常工作。

如果将number输入设置为只包含数字的字符串,那么它可以正常工作。

如果将number输入设置为包含数字和一些空格的String,则会使输入空白。

您可能在服务器响应中的数据后面有一个空格或一个新行,而您实际关注的是这个。

改为使用document.getElementById("points").value = parseInt(request.responseText, 10);

答案 2 :(得分:1)

我能想象的唯一情况是,您在 webkit 浏览器上运行此操作,例如 Chrome Safari 以及您在{的返回值{1}},包含字符串值

在那个安排中,无法显示该值(它将变为空白)

示例:http://jsfiddle.net/BmhNL/2/


我的观点是,我希望错误/双重编码的字符串值。 Webkit浏览器对responseText = type更严格。如果“只有”空白问题,您可以尝试隐式调用number构造函数,例如

Number()

答案 3 :(得分:0)

问题显然不在于javascript。这是一个快速的片段,向您展示代码的工作。

document.getElementById('points').value = 100;

http://jsfiddle.net/eqTm2/1/

如您所见,javascript完美地将新值分配给input元素。如果你能详细说明这个问题会很有帮助。

答案 4 :(得分:0)

请参阅下面的代码段

在HTML页面中

document.getElementById("test").value=request.responseText;// in case of String 
document.getElementById("test").value=new Number(responseText);// in case of Number

在Java脚本中

{{1}}

答案 5 :(得分:-1)

尝试使用,

$('#points').val(request.responseText);