2017-08-07 6 views
0

を提出しない提出私はそう、私は通過して、私のフォームを変更していマテリアライズするBS3から移動してきました。ボタンはクリックされたようにも見えませんが、一般的な 'logMe'関数をそれに結びつけています。Railsはボタンが

私のルートは、新しいフォームは、私は、すべてのJSをコメントアウト通常のボタンにそれを切り替え、それを糸くずやRubocopを使用してみました

<div class="row"> 
    <%= form_with(model: @statement, local: true) do |form| %> 
    <% if @statement.errors.any? %> 
     <% @statement.errors.full_messages.each do |message| %> 
     <script> 
     $(function() { 
      Materialize.toast("<%= message %>", 3000); 
     }); 
     </script> 
     <% end %> 
    <% end %> 

    <div class="row"> 
     <div class="input-field col s12"> 
      <i class="material-icons prefix">account_circle</i> 
      <!--<label for="icon_prefix">SoW Type:</label>--> 
      <%= form.label :statement_type, 'Type:' %> 
      <%= form.text_field :statement_type, :id => "disabled", :value => (params[:statement_type]), readonly: true, :disabled => true %> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="input-field col s6"> 
     <i class="material-icons prefix">contacts</i> 
     <%= form.label :name, "Name:" %> 
     <%= form.text_field :name, :id => 'required_field1' %> 
     </div> 
     <div class="input-field col s6"> 
     <i class="material-icons prefix">contacts</i> 
     <%= form.label :cost, "Cost:" %> 
     <%= form.text_field :cost, :id => 'required_field2' %> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="input-field col s6"> 
     <i class="material-icons prefix">date_range</i> 
     <%= form.label :start_date, "Start Date" %> 
     <%= form.text_field :start_date, :class => 'datepicker', "data-provide" => 'datepicker', :id => 'required_field4', :placeholder => "YYYY-MM-DD" %> 
     </div> 
     <div class="input-field col s6"> 
     <i class="material-icons prefix">date_range</i> 
     <%= form.label :end_date, "End Date" %> 
     <%= form.text_field :end_date, :class => 'datepicker', "data-provide" => 'datepicker', :id => 'required_field5', :placeholder => "YYYY-MM-DD" %> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="input-field col s12"> 
     <i class="material-icons prefix">perm_contact_calendar</i> 
     <%= form.collection_select(:client_id, current_user.clients.order(:name),:id,:name, :class => "browser-default", :prompt => "Choose a client") %> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col s12"> 
     <%= form.submit 'Submit', :class =>'btn btn-default', :id => 'register', :onclick => "testMe()"%>  
     </div> 
    </div> 

    <% end %> 
</div> 

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('select').material_select(); 
    validate(); 
    $('#required_field1, #required_field2').change(validate); 
}); 

function testMe(){ 
    console.log('hi') 
} 

function validate(){ 
    if ($('#required_field1').val().length > 0 && 
     $('#required_field2').val().length > 0 
    ){ 
     $("input[type=submit]").prop("disabled", false); 
    } 
    else { 
     $("input[type=submit]").prop("disabled", true); 
    } 
} 
var from_$input = $('#required_field4').pickadate({ 
    selectMonths: true, // Creates a dropdown to control month 
    selectYears: 15, // Creates a dropdown of 15 years to control year, 
    today: 'Today', 
    clear: 'Clear', 
    close: 'Ok', 
    closeOnSelect: true, 
    format: 'yyyy-mm-dd' 
    }), 
    from_picker = from_$input.pickadate('picker') 

var to_$input = $('#required_field5').pickadate({ 
    selectMonths: true, // Creates a dropdown to control month 
    selectYears: 15, // Creates a dropdown of 15 years to control year, 
    clear: 'Clear', 
    close: 'Ok', 
    closeOnSelect: true, 
    format: 'yyyy-mm-dd' 
    }), 
    to_picker = to_$input.pickadate('picker') 


// Check if there’s a “from” or “to” date to start with. 
if (from_picker.get('value')) { 
    to_picker.set('min', from_picker.get('select')) 
} 
if (to_picker.get('value')) { 
    from_picker.set('max', to_picker.get('select')) 
} 

// When something is selected, update the “from” and “to” limits. 
from_picker.on('set', function(event) { 
    if (event.select) { 
    to_picker.set('min', from_picker.get('select'))  
    } 
    else if ('clear' in event) { 
    to_picker.set('min', false) 
    } 
}) 
to_picker.on('set', function(event) { 
    if (event.select) { 
    from_picker.set('max', to_picker.get('select')) 
    } 
    else if ('clear' in event) { 
    from_picker.set('max', false) 
    } 
}) 

</script> 

ですが、私はそうではないの両方でまったく同じですオフ何かを参照してください。私はボタンがフォームの内側にあることを確認するためにHTMLを調べました。

これは私が移行した最初の形式ではありませんが、最初は問題があります。

は(私はそれがこの時点でコントローラになっていないため、表示のみが関連していると仮定します。)

は、念のために - フォームのレンダリングビューは

<div class="row"> 
     <div class="col s12"><span class="flow-text" style="text-align: center;"><h1>New <%= params[:statement_type] %></h1></span></div> 
</div> 


<% if params[:statement_type] == 'Proposal' %> 
    <%= render 'proposal_form' %> 
<% elsif params[:statement_type] == 'Concept' %> 
    <%= render 'concept_form' %> 
<% elsif params[:statement_type] == 'SoW' %> 
    <%= render 'sow_form' %> 
<% elsif params[:statement_type] == 'Misc' %> 
    <%= render 'misc_form' %> 
<% end %> 

<%= link_to 'Back', statements_path %> 

SOWです+提案作業。そうではありません。

答えて

0

私の問題は、HTMLをベースにしていますが、Railsは最終的に基づくものではないことになりました。

パラメータによって設定された静的な要素が原因です。

<%= f.text_field :statement_type, :id => "disabled", :value => (params[:statement_type]), readonly: true %> 

id: disabledを削除すると、[送信]ボタンを送信できないことが解決されました。残念ながら、それはまた、私はそれを選択すると、フィールドを強調表示するにMaterializeCSSバックになりますが、私の問題は、[送信]ボタンが機能していませんでした。

関連する問題