我有一個重定向工作正常,讓我到我的索引。它是如下:Rails - 進入索引,但也提交表單與同樣的點擊
redirect_to action: :index, filters: { recent_price_change: "#{1.week.ago.strftime('%m/%d/%Y')} - #{Date.today.strftime('%m/%d/%Y')}" }, hide_filters: true
事情是,我在填充點擊過濾器。在同一頁面上有一個標籤爲提交操作的按鈕。
這裏是HAML的摘錄(這是八九不離十有點兒像ERB ......不要擔心太多就可以了,只要注意它是如何類型:提交)包含它的文件:
%button.btn.btn-primary.btn-sm{ type: 'submit', style: 'background-color: #a38672;' }
%span.glyphicon.glyphicon-play
Update List
點擊上面的按鈕提交表單,應用過濾器將一些結果放在屏幕上的表格中。
這是/一切都很好 - 但有一個新的要求,我希望提交按鈕被「自動點擊」重定向。 AKA,我不想手動點擊這個按鈕......相反,作爲重定向的一部分,表單需要提交。所以,當頁面加載時,它是如果我剛剛點擊了按鈕 - 數據填充等。你們都知道這是可能的/我會怎麼做?我已經通過redirect_to行動的文檔挖掘,希望我能在那裏找到一些幫助 - 但是現在還沒有骰子。
UPDATE:
我說:
document.querySelector('.button.btn.btn-primary.btn-sm').click();
走上HAML在像這樣的文件的末尾:
:javascript
document.querySelector('.button.btn.btn-primary.btn-sm').click();
它提交負載形式......但事實證明,我的索引頁面必須反覆重新渲染...重複點擊按鈕。它不會只做一次。想知道是否有某種方法可以將這個綁定到onload上。
更新2:
所以我寫了
firstSubmit = function() {
document.querySelector('.button.btn.btn-primary.btn-sm').click();
};
$(document).on('page:load', firstSubmit);
問題是...看來我的網頁被反覆重裝本身。那麼,它一遍又一遍地傳播我的按鈕,導致頁面的總流量。無論如何限制這個沒有得到真正janky(全球變種? - 我討厭)?
嘿那裏 - 所以我有點天真地把這個代碼,迄今,沒有骰子。但想問一下這是如何調用?如果do_not_redirect作爲標誌變量綁定到我的按鈕,是不是這樣,因爲人沒有按下按鈕(理想情況下 - 希望它在沒有按下按鈕的情況下加載),它永遠不會被填充,因此,表單從不提交?我想如果我能更好地理解我們在這裏要做的事情,我可以把它們合在一起/弄清楚如何讓它在我的情況下運行。 – PinkElephantsOnParade
當頁面加載並提交表單時,會自動設置'do_not_redirect'字段;控制器檢查是否存在do_not_redirect POST參數,並重定向到在GET參數中使用此標誌的索引;當標誌出現時,javascript不會出現,並且表單只會提交一次。 – Inpego