我的表格中有一份患者下拉列表:
<%= form_for @assessment do |f| %>
<div class="form-group text-center">
<%= f.select :patient, content_tag(:option,'select patient...',:value=>"")+content_tag(:option,'New Patient',:value=>"")+options_from_collection_for_select(@patients, 'id', 'full_name'), :class=>"form-control" %><br />
</div>
当选择下拉列表中的患者时,我使用Jquery获取所选患者的ID:
<script>
$('#assessment_patient').change(function(){
var e = document.getElementById("assessment_patient");
var patient_id = (e.options[e.selectedIndex].value)
});
</script>
我想在link_to rails helper中传递所述patient_id:
<%= link_to template.name, {:controller => "assessments", :action => "new", :template_id => template.id, :patient_id => patient_id, :remote=> true }%>
但它不起作用。如何在ERB中使用我的JS变量?或者我可以在link_to中传递Jquery选择器吗?
答案 0 :(得分:1)
在服务器上解析和处理ERB。您的网页上的JavaScript将在浏览器中解析并执行。当有一个JavaScript值时,ERB处理已经发生。因此,您无法直接在ERB中读取JavaScript值,因为它们尚未存在,因为没有执行任何JavaScript。
如果您尝试将JavaScript值注入DOM中的某个位置,则可以使用JavaScript而不是尝试使用ERB来实现。另一方面,如果您需要服务器上的JavaScript值(例如,如果必须将其用作数据库查询的一部分),则可以尝试通过XHR / AJAX发送它等选项。