javascript文档.getElementById()。值仅适用于数字,不适用于字符串

javascript文档.getElementById()。值仅适用于数字,不适用于字符串,javascript,ruby-on-rails,innerhtml,getelementbyid,Javascript,Ruby On Rails,Innerhtml,Getelementbyid,我有一个基于AJAX的应用程序,它根据用户输入更新表单中的文本字段。文本字段定义如下: <%= form.text_field :queue, {:class => "queue_class", :id => "queue", :size => 40} %> 那就好了。但如果我将其设置为字符串值,如: @returned_value='abcxyz' 然后它就不工作了,文本字段没有更新,我也没有收到任何错误消息,就好像它什么也没做一样 我也试过: documen

我有一个基于AJAX的应用程序,它根据用户输入更新表单中的文本字段。文本字段定义如下:

<%= form.text_field :queue, {:class => "queue_class", :id => "queue", :size => 40} %>
那就好了。但如果我将其设置为字符串值,如:

@returned_value='abcxyz'
然后它就不工作了,文本字段没有更新,我也没有收到任何错误消息,就好像它什么也没做一样

我也试过:

document.getElementById('queue').innerHTML = <%= @returned_value %>
document.getElementById('queue')。innerHTML=
但无论是在
@returned\u value='77777'
还是
@returned\u value='abcxyz'


有人能告诉我这里缺少什么吗?

您需要引用JavaScript中的字符串:

document.getElementById('queue').innerHTML = '<%= @returned_value %>';
document.getElementById('queue')。innerHTML='';

数字通过
.toString()
强制为字符串,但不带引号的字符串将引发解析器错误。

ERb表达式缺少引号:

document.getElementById('queue').value = '<%= @returned_value %>';
document.getElementById('queue')。值=“”;
(它也应该是JavaScript转义的。)


数字是不带引号的合法JavaScript表达式。任意字符串不是;JS将尝试将其解析为表达式(引用)加上字符串中与JS相关的任何内容。

javascript代码生成为字符串,稍后由javascript解释器进行pasred。因此如果生成字符串,则必须在其周围加引号,如下所示:

document.getElementById('queue').value = '<%= @returned_value %>'
document.getElementById('queue')。值=“”

谢谢戴夫,你救了我一天@Rh4没问题。请确保JS escape以避免其他问题。抱歉,Dave,如何“JS escape”?@rh4games With。谢谢Holger,这解决了我的问题
document.getElementById('queue').value = '<%= @returned_value %>';
document.getElementById('queue').value = '<%= @returned_value %>'