2014-10-13 3 views
0

У меня есть кнопка html в файле html.erb. Эта кнопка генерирует элементы управления html и добавляет в таблицу. Он работал нормально, когда не было рубинов на скриптах рельсов. Но теперь у меня есть select_tag RoR. Это отправляет мою страницу. Мой полный код, как просили в комментариях выглядит следующим образом:Использование тега Ruby on Rails в JavaScript

<script type="text/javascript"> 

    $(document).ready(function() { 
      $("#AddSch").click(function() { 
      var hidval = $('#valEdu').val(); 
      if(hidval == 0) 
      { 
      hidval = 1; 
      } 
      else 
      { 
       //$('#valEdu').val(++hidval); 
      hidval++; 
      } 

      var rownum=$("#Controls > tbody > tr").length; 
      var updated_row_num; 
      if (rownum == 0) 
      { 
       updated_row_num=0; 
      } 
      else { 
       updated_row_num=rownum/2; 
      } 
      var newRow = "<tr><td align='center' style='font-size: x-large; color: #212121;' height='35px'>" + input1 + " <%= select_tag('university', options_from_collection_for_select(@Universites, 'id', 'University'),{:prompt => 'University'}) %></td></tr>"; 
      var control = "<tr><td align='center'><button type='button' class='btn_rmv'>Remove</button></td></tr>"; 

     $('#Controls').append(newRow); 
     $('#Controls').append(control); 
     return false; 
     }); 

      $('#Controls').on('click', '.btn_rmv', function() { 
       var index = $(this).closest('tr').index() + 2 
       $('#Controls tr:nth-child(n+' + (index - 3) + ')').remove(); 
       return false; 
      }); 

    }); 
</script> 

<h2 class = "subtitle"> 
    Education 
</h2> 
<%= form_for (:Educations) do |f| %> 
<table width="100%"> 
     <tr style = "text-align:center;"> 
     <td> 
      <%= f.select :chapter,options_from_collection_for_select(@Chapters, "id", "Chapter"), :include_blank => "Chapter",:id => "DDL_Students",:style => "margin-top: 10px" %> 

      <%= f.select :University,options_from_collection_for_select(@Universites, "id", "University"), :include_blank => "University",:id => "DDL_Students",:style => "margin-top: 10px" %> 
     </td> 
     </tr> 
     <tr> 
     <td align="center"> 
      <table id="Controls"> 
      </table> 

      <div><input id="AddSch" value="Add" type="button" /></div> 
      <input id="valEdu" type="hidden" value="0" /> 

     </td> 
     </tr> 
</table> 
<table width="92%"> 
     <tr> 
     <td align="center"> 
      <div class="button" style="margin-left:60px;"> 
       <%= f.submit "Next", { :class => "buttonSearch"} %> 
      </div> 
     </td> 
     </tr> 
</table> 
<% end %> 

Удаление type="submit" изменений это текстовое поле и если я использую type="button" он никогда не называет, что JavaScript. Как я могу заставить его работать?

+0

, что это полный путь/имя файла JavaScript? Как вы убедитесь, что для javascript-файла доступны хэндлы Rails и т. Д., И что он может выполнять ERB? –

+0

Основная идея выполнения некоторого javascript при нажатии кнопки type = "button" работает нормально - проверьте http://jsfiddle.net/a9kyu75r/ –

+0

@ joshua.paling Я использую javascript на той же странице, где я разместил add например, new.html.erb. Я упомянул, что эта кнопка добавления и клика работает нормально. но он отправляет страницу, когда я разместил этот помощник рельсов для выбора –

ответ

0

есть два указателя, которые я могу вам дать, я не могу воспроизвести, поскольку у меня нет вашей модели и настройки действий контроллера.

1. Вы не хотите случайно вверх или downcase переменные, как в:

f.select :University,options_from_collection_for_select(@Universites, "id", "University"), :include_blank => "University",:id => "DDL_Students",:style => "margin-top: 10px" 

Вместо этого вы хотите:

f.select :university, options_from_collection_for_select(@universities, "id", "university_name"), :include_blank => "University",:id => "DDL_Students",:style => "margin-top: 10px" 

В идеале вы не хотели бы, чтобы встроенные стили слишком , но мы дадим это скольжение на данный момент ;-)

2. Я мог бы изменить переменную "input1" (F12) и проверьте, нет ли там ошибок JS.

Надежда, что помогает, Ян

+0

ОК, я удалил часть 'var input1' и забыл удалить ее из кода, который я разместил. Я следую тому же материалу, который используется в f.select и select_tag, так что это тоже не проблема. в любом случае спасибо за просмотр –

Смежные вопросы