浏览器是铬(在ubuntu下)
这是一大块代码:(当然)警报消息显示正确的值。但要点 element没有得到正确的值,它实际上是空的。谁能告诉我为什么?
以下是如何定义points元素。
<input type='number' id='points' value='0'/>
以下是javascript代码应该如何填充它。
alert(request.responseText);
document.getElementById("points").value=request.responseText;
答案 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;
如您所见,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);