繁体   English   中英

JavaScript代码无法在表单上呈现部分内容

[英]JavaScript code fails to render partials on form

我需要帮助对我的Rails 4应用程序中的某些JavaScript进行故障排除。 我的目标是通过仅显示用户可以选择的不同类型的有氧运动的相关表单字段来改善用户体验。

例如,如果用户选择“骑自行车”,则我希望部分名为“ _cardio_time.erb”的字段显示“距离”,“预测的速度”和“持续时间”字段。 如果用户选择说“ Jumping Jack”,我希望一个名为_cardio_sets的部分显示“ sets”和“ reps”字段。

这是我编写JavaScript代码的尝试:

$(document).ready(function() {
  $("#cardio_exercise_aerobic_training_list_id").change(function(e){
    e.preventDefault();
  $("<% if cardio_exercise.aerobic_training_list.category == 1 %>");
  $("<%= escape_javascript render(:partial => 'layouts/cardio_time.erb' %>").insertAfter('#read-cardio-exercise-description-text');
  $("<% else %>");
  $("<%= escape_javascript render(:partial => 'layouts/cardio_sets.erb' %>").insertAfter('#read-cardio-exercise-description-text');
  $("<% end %>");
  })    
});

该代码在Firebug控制台中不会产生任何错误,但是当我从下拉菜单中选择“循环”时,将在表单上呈现以下文本:

<%= escape_javascript render(:partial => 'layouts/cardio_sets.erb' %><%= escape_javascript render(:partial => 'layouts/cardio_time.erb' %>

我究竟做错了什么? 我正在学习Rails和JavaScript。 我将不胜感激任何帮助!

$(document).ready(function() {
    $("#cardio_exercise_aerobic_training_list_id").change(function(e){
        e.preventDefault();
        <% if cardio_exercise.aerobic_training_list.category == 1 %>
        $("<%= escape_javascript render(:partial => 'layouts/cardio_time.erb') %>").insertAfter('#read-cardio-exercise-description-text');
        <% else %>
        $("<%= escape_javascript render(:partial => 'layouts/cardio_sets.erb') %>").insertAfter('#read-cardio-exercise-description-text');
        <% end %>
    })    
});

查看是否删除if / then / end句子的jQuery包装器,并在render的末尾添加缺少的括号即可解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM