0

我有一个带有复选框的表单,用于收集用户的 facebook id。我想使用这些 id 向他们发送应用请求。

提交我的表单后,它会生成一个 facebook id 列表并运行一个方法sendrequest

这是我在视图 home.html.erb 中的表单

    <%= form_tag sendrequest_path do%>
        <%=check_box_tag "friendids[]", 12345 %>
        <%=check_box_tag "friendids[]", 67890 %>
        <%=submit_tag "send requests"%>
    <% end %>

我想以某种方式在sendrequest提交表单时运行以下 javascript。但是需要注意的是它必须遍历friendsid[] 列表。

 <script>
  FB.init({
    appId  : 'YOUR_APP_ID',
    frictionlessRequests: true
  });

  function sendRequestToRecipients() {
    var user_ids = document.getElementsByName("user_ids")[0].value;
    FB.ui({method: 'apprequests',
      message: 'My Great Request',
      to: 

具体来说,它应该遍历 params[:friendids]。Facebook 允许多个请求,只要它是逗号分隔的,所以 to: "12345,67890"在这个例子中可以工作。我该怎么做呢?

4

1 回答 1

1

如果您使用的是 jquery,那么您可以执行以下操作:

首先,我们为表单分配一个id

<%= form_tag sendrequest_path, id: 'send-request-form' do %>

然后我们观察该表单的提交事件并获得所有选中复选框的列表。然后

$('#send-request-form').submit(function() {
  var friendIds = $(this).find(':checkbox:checked').map(function() { return this.value })
  // then you can use friendIds.join(',') as the comma separated list of friend ids
  sendRequestToRecipients(friendIds.joins(',')) 
});

function sendRequestToRecipients(ids) {
   // use ids in this function
}
于 2013-02-24T07:36:40.933 回答