2013-11-04 62 views
0

我有一個表單,用戶可以粘貼圖像的URL。當用戶提交表單時,我想首先創建一個ajax GET請求,下載圖像客戶端並在出於安全目的進行操作之前對其進行檢查。Rails 4:窗體遠程自定義ajax請求

我的問題是,遠程表單已經做了一個ajax請求,我只能訪問它之前和完成綁定。但實際上我需要鏈接它們。圖像檢查完成後,從表單開始POST POST ajax請求。

我該怎麼做?

(Sry基因,我使用超薄)

= 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" 
+0

只需使用javascript,這很容易。但我不知道你在那裏與你有什麼關係。你只需預加載圖像,檢查它的高度/寬度以確保它不是0x0,做任何你想要的額外檢查,然後發佈你的表單數據。 –

+0

是的,這將是確實......但鐵軌有這個自動ajax請求遠程窗體和鏈接。我的問題是我不知道如何用上面解釋的自定義ajax請求在rails中構建表單,並將正確的結果發送給我的controlle create操作。 – Mexxer

回答

0

你可以嘗試監聽的UJS適配器軌提供了ajax:beforeajax:beforeSend事件。

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

根據該文件,如果你停止「使用return false這些事件,遠程表單請求不應該去。所以你可以通過ajax在表單提交之前下載其中一個事件的圖像,並在那裏進行檢查。

+0

event.stopPropagation()並沒有停止請求:($( '#new_post')綁定( 'AJAX:beforeSend',函數(事件){ \t \t event.stopPropagation(); \t}); – Mexxer

+0

如何返回false?似乎工作如下所示:http://stackoverflow.com/questions/4366777/rails-ujs-preventing-the-event-from-propagating-using-ajaxbefore – zungaphobia

+0

'return false'停止請求按照預期在新的Rails 4.0.0應用上進行。 – zungaphobia