簡體   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