我有一个jQuery Bootstrap星级评分(http://plugins.krajee.com/star-rating)。我被困在试图将值传递给Rails form_for。我不知道如何提交带有从脚本中获取的价值的表格。
<%= form_for @book.reader_books.build, id: "my-form", :html=> {:id => 'my-form'} do |f| %>
<%= f.hidden_field :book_id, value: @book.id, :id=>"rating_field" %>
<div class="col-md-6 ratings">
<div align="center"><%= @book.rating_average.to_i %></div>
<input id="input-id" name="input-id">
</div>
<% end %>
<% else %>
<strong>Your rate:</strong>
<%= @book.reader_books.find_by!(reader: current_reader).rating %>
应触发表单提交的脚本:
<script type="text/javascript">
$('#input-id').rating().on('rating.change', function(event, value, caption) {
console.log(value);
$("#rating_field").val(value);
$("#my-form").submit();
});
</script>
console.log(value);
- 只需检查是否输入了数据。
$("#rating_field").val(value);
- 为该字段分配value
。
$("#my-form").submit();
- 触发提交。
提前致谢!
答案 0 :(得分:3)
执行$("#my-form").submit();
不会远程提交表单。相反,将发生完全刷新
$("#my-form").trigger('submit.rails');
是实现目标的方式。
答案 1 :(得分:1)
$('#input-id').rating().on('rating.change', function(event, value, caption) {
// traversing up the DOM is faster and avoids hardcoding an ID.
var $form = $(event.target).parents('form');
// You can get inputs by name from a form element without querying the DOM.
$form[0]["reader_book[book_id]"].value = value;
$form.submit();
});
答案 2 :(得分:0)
我通过使用提交按钮上的click()
函数 而不是表单来使它工作。
$('input[type="submit"]').click();
或
$('#submit-button').click();