我想知道是否有办法用jQuery提交一种单选按钮。我遇到的问题是我将一个开始评级的jQuery插件应用到rails表单,而这个插件有它自己的点击回调。我想简单地告诉rails表单从这个回调中提交。
以下是rails中的表单:
<%= form_for([@contact, @contact.overall_ratings.new],
:remote => true,
:format => :js) do |f| %>
<%-# TODO set these up in a loop %>
<%= f.radio_button :rating, 1, {:class => "star"} %>
<%= f.radio_button :rating, 2, {:class => "star"} %>
<%= f.radio_button :rating, 3, {:class => "star"} %>
<%= f.radio_button :rating, 4, {:class => "star"} %>
<%= f.radio_button :rating, 5, {:class => "star"} %>
<% end %>
以下是对插件的调用,以及回调:
$(function(){
$('input.star').rating({
callback: function(value, link){
//get parent form
var form = $(this).parent();
$(form).submit();
}
});
});
到目前为止,我所遇到的问题是它正在重定向到.js文件。好像它不遵守表格调用:remote =&gt;是的,这并不让我感到惊讶,因为我是从插件回调中调用它的。
感谢您的帮助!
答案 0 :(得分:0)
怎么样?
$('input.star').click(function(){ $(this).parent().submit(); return true; });
? 这将在设置无线电输入的值后触发表单提交,因此无论如何它都会起作用。
此外 - 您确定从application.js中正确引用了jquery_ujs吗?因为看起来,这个表单没有设置为远程。
最后,IMO不需要:format=>:js
,因为格式也来自标题。