我的Rails 3应用程序中有一个搜索表单。大多数搜索都是在选中/取消选中复选框时发生的,但是我有一个或两个我想用选择下拉列表执行的搜索。我正在使用非常基本的jQuery来提交带有复选框的表单,我也尝试将它调整到:选择的选择器。然而,它不起作用。在解决问题时,我想知道我的jQuery是否是原因。
这是我的jQuery:
$(function(){
$(':selected').live('click',function() {
$(this).closest('form').submit();
});
});
我正在使用Ransack作为搜索表单。这是我用于实际形式的<%= f.select %>
:
<%= f.select :profile_subject, options_for_select([['Select', 0], ['Arts', 1], ['Biology', 2], ['Business', 3], ['Chemistry', 4], ['English', 5], ['Foreign Language', 6], ['Government', 7], ['Health', 8], ['History', 9], ['Math', 10], ['Physics', 11], ['Vocational', 12]]) %>
答案 0 :(得分:1)
我不认为使用:selected
会起作用。代码运行时,用户不应该在select元素中选择任何内容,因此不会附加事件处理程序。
尝试使用$("select")
或元素的id或名称来附加事件处理程序。在事件处理程序中,您可以检查元素是否已被选中,然后提交表单。
答案 1 :(得分:1)
根据您的评论。我想您要使用change
而不是click
。这样,只要值发生变化,代码就会执行。
$(function(){
$('select').live('change',function() {
$(this).closest('form').submit();
});
});