Ruby – Rails – 将文本传递给javascript
为什么不将这个文本传递给javascript / jquery。 @i[:error]
肯定有一个字符串,我可以在控制台上打印。
js.erb文件 –
" + @i[:error] %> #--> error #Validation error(s): #- Item Is not defined or blank. # that's the error string in @i[:error] $(function() { $("#error_message").attr("class", "message_error"); $('#error').text(""); #Not working for @i[:error] #$('#error').text("");#Not working for @i[:error] #$('#error').text("Test"); #This is working #$('#error').text(""); #This is working }); ........#fine here
是的,这可能是因为换行了。 您可以使用escape_javascript
修复它。
转义回车以及JavaScript段的单引号和双引号。
所以:
$('#error').text("<%= escape_javascript(@i[:error]) %>");
如果您指定调试器所说的内容,则更容易理解该问题。 这个erb视图的代码工作正常:
<% @i = {} %> <% @i[:error] = "Error" %> <% unless @i[:error].blank? %> <% end %>
请注意空白检查字符串的空白? 方法,我认为它看起来比使用!=运算符更好。