2017-06-01 84 views
0

On Rails 5我使用datepicker jQuery UI函數填充hidden_​​field_tag與日期。當前視圖看起來像這樣 -Rails 5 - hidden_​​field_tag由JS填充不提交表單通過:onchange

<script> 
    $(function() { 
     $('#datepicker').datepicker({ 
     inline : true, 
     altField : "#date_search", 
     onSelect : function(){ $('#date_search').submit();} 
     }); 
    }); 
    </script> 
(...) 
<%= form_tag(escala_index_path, :method => :get) do %> 
     <%= hidden_field_tag("date_search") %> 
     <%= submit_tag "Search", name: nil %> 
<% end %> 

哪個工作正常。但我想砸submit_tag,使表單提交的日期,當它改變時,因爲類似的形式select_tag的:平變化選項的工作我想:

<%= hidden_field_tag("date_search", "", :onchange => ("this.form.submit();")) %> 

但沒有任何反應。關於我在做什麼的任何提示都是錯誤的?

+0

'ONSELECT:函數(){$( '#date_search')提交();}'應該是這樣的'ONSELECT:函數(){$( '#你的外形ID')。 submit();}',用你的表單的id替換'your-form-id'。例如:'<%= form_tag(escala_index_path,:method =>:get,:id =>'my-form')do%>'and'onSelect:function(){$('#my-form')。submit ();}' – fanta

+0

乍一看它工作得很好,明天我會欺騙一下以確保,非常感謝你的快速回答!只是一個問題,如果在「onSelect」中我需要指定表單名稱,而不是參數,爲什麼它與submit_tag一起工作? –

回答

1

$('#date_search').submit();不起作用,因爲提交事件不會冒泡到表單。

$(function() { 
    $("#datepicker").datepicker({ 
    inline : true, 
    altField : "#date_search", 
    onSelect : function(){ this.form.submit() } 
    }); 
}); 
+0

我猜inline':onchange =>(「this.form.submit();」))'不起作用,因爲jQuery UI Datepicker不會觸發輸入上的正常更改事件。 – max

+0

這會在選擇日期時重新​​加載頁面,但param未發送到服務器。 inline:onchange在用戶fanta評論上面提供了表單id後工作。我將不得不嘗試將日期作爲參數選擇,儘管(當頁面重新加載/ params發送日期選擇器返回到今天的日期)。不管怎麼說,還是要謝謝你。 –