2

select_tag从Rails 3.1中选择(更改)选项后,我想发送 AJAX 请求。我们可以使用:remote=>true:onchange => remote_function()有其他方法吗?

4

3 回答 3

6

你绝对应该用 jQuery 来做这件事(用一种不显眼的方法来保持事情尽可能干净)。在你的 .js 文件上,你应该有这样的东西......

$('#select_tag_id').change(function(){
  $ajax({
    url: "remote_action_in_your_controller",
    type: "GET",
    data: {select_tag_value: $('#select_tag_id option:selected').text()},
  })
});

如果您只想在控制器上调用远程操作,这应该很简单(请注意,我传递了所选选项的值,因为您可能希望该值对其执行某些操作)。如果您需要在执行 ajax 调用后执行某些操作,请使用该succes选项。希望这可以帮助。

于 2012-07-24T16:15:22.803 回答
1

您必须使用 JQuery 来完成。像这样,当文件准备好时,:

$('#your_select_tag').change(function() {
  $.ajax({ type: "GET",   
           url: "http://your_url/",  
           success : function(text) {
              alert('success')
           }
  });
});

请参阅文档:http ://api.jquery.com/change/和http://api.jquery.com/jQuery.ajax/

于 2012-07-23T18:43:10.600 回答
1

remote: true添加data-remote="true"到 html 元素。只需将其添加为选项中的 CSS 类select_tag即可。

<%= select '', '',  @coaches, {}, { data: {remote: true } } %>

请注意,data: { remote: true }使用它是因为"data-remote"它对 Ruby 不友好。

于 2016-06-14T19:58:31.647 回答