Вы смешиваете какие процессы на стороне сервера и код javascript, который запускается в браузере на клиенте.
Сначала, под onchange
в вашем HTML, f.submit
оценивается каккнопка отправки, а не код javascript, который принадлежит атрибуту onchange
.
Если вы выполняете просмотр страницы источника из браузера, вы увидите это для атрибута onchange
:
<input class="form-control bottom_margin" onchange="<input type="submit" name="commit" value="Save Search" data-disable-with="Save Search" />" type="text" name="search[course_name]" id="search_course_name" />
Для этого нужно, чтобы код JavaScript выполнял то, что вы хотите, чтобы происходило, когда происходит событие onchange
.
Кроме того, вы добавляете следующую строку в тег <div id="result">
:
<%= escape_javascript(render partial: 'search/create', locals: { searchResult: @searchResult } ) %>
Эта строка будет помещена только в тег div
.Это не будет оценивать render partial
.Все, что у вас будет, - это неоцененный текст в теге div
.
Это связано с тем, что render
необходимо выполнить оценку на сервере перед отображением страницы.Javascript запускается позже, поэтому он не может оценить строку, которую вы ему дали.