Rails 4:形成远程自定义ajax请求

时间:2013-11-04 19:30:50

标签: javascript jquery ruby-on-rails ajax

我有一个表单,用户可以在其中粘贴图片的网址。当用户提交表单时,我首先要制作ajax GET请求,然后在出于安全目的进行操作之前对客户端进行下载并进行检查。

我的问题是远程表单已经执行了ajax请求,我只能使用之前的那些访问它并完成绑定。但实际上我需要链接它们。完成图像检查后,继续执行表单中的POST ajax请求。

我该怎么做?

(Sry,我正在使用Slim)

= form_for @post, html: { class: "form-horizontal", role: "form" }, remote: true  do |f|
  .form-group
    = f.label :author, "Name", class: "col-xs-1 control-label"
    .col-xs-11
        = f.text_field :author, class: "form-control", placeholder: "Name"
  .form-group
    = f.label :title, "Titel", class: "col-xs-1 control-label"
    .col-xs-11
        = f.text_field :title, class: "form-control", placeholder: "Titel"
  .form-group
    = f.label :text, "URL", class: "col-xs-1 control-label"
    .col-xs-11
        = f.url_field :text, class: "form-control", placeholder: "http://"


  .form-group
    .col-xs-offset-1.col-xs-11
      = f.button :submit, class: "btn btn-default"

1 个答案:

答案 0 :(得分:0)

您可以尝试侦听适用于rails的UJS适配器提供的ajax:beforeajax:beforeSend事件。

https://github.com/rails/jquery-ujs/wiki/ajax

根据文档,如果您使用return false“停止”这些事件,则远程表单请求永远不会通过。因此,您可以通过ajax在提交表单之前在其中一个事件中下载图像并在那里进行检查。