【问题标题】:passing ruby variables to javascript (Ruby on Rails)将 ruby​​ 变量传递给 javascript (Ruby on Rails)
【发布时间】:2013-07-05 09:41:51
【问题描述】:

我有一份药物清单和一份疫苗清单,我分别从表格药物和疫苗中提取。药物列表的格式为 drug_name,疫苗接种列表也是如此。我使用这段代码将这两个都存储在 vars 中。

var injections=<%=@injections%>;
var medicines=<%=@medicines%>;

在我看来,我为药物和注射剂选择了标签,但是当我尝试使用以下代码将这些变量附加到相应的标签时。我没有得到任何结果,请帮忙

$('.addmedicines').click(function()
   $('.medicines').append(medicines);


});
$('.addinjections').click(function(){
   $('.injections').append(injections);
});

这里的 .injections 是分配给选择疫苗接种标签的类。 .medicines 是分配给选择药物标签的类。 .addmedicines 和 .addinjections 是 html 按钮。

已编辑:

当我尝试在 javascript 中同时显示注射剂和药物时,它们显示如下:

药物:

<option>Med1</option><option>Med2</option><option>Med3</option><option>Med4</option>

注射:

<option>i1</option><option>i2</option><option>i3</option><option>i4</option>

【问题讨论】:

标签: javascript jquery ruby-on-rails


【解决方案1】:

您在第一个函数之后缺少{

应该是:

$('.addmedicines').click(function(){  // <-- right here :)
   $('.medicines').append(medicines);


});
$('.addinjections').click(function(){
   $('.injections').append(injections);
});

你有什么:

$('.addmedicines').click(function()   // <-- right here :)
   $('.medicines').append(medicines);


});
$('.addinjections').click(function(){
   $('.injections').append(injections);
});

【讨论】:

    【解决方案2】:

    你可以使用 Rails 助手array_or_string_for_javascript,或者直接调用to_json

    var injections = <%= array_or_string_for_javascript(@injections) %>;
    var medicines = <%= array_or_string_for_javascript(@medicines) %>;
    
    // OR
    
    var injections = <%= @injections.to_json %>;
    var medicines = <%= @medicines.to_json %>;
    

    【讨论】:

    • array_or_string_for_javascript 已弃用。
    【解决方案3】:
    var injections= '<%=@injections%>';
    var medicines='<%=@medicines%>';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      相关资源
      最近更新 更多