0

フォームを作成し、その上で UJS を実行したいと考えていました。ただし、フォーム タグが入力フィールドの外にあるという問題がありますか? そんなことがあるものか?

<tr>
  <td>
    <input name="email_notification[secondary]" type="hidden" value="0">
    <input id="email_notification_secondary_254" name="email_notification[secondary]" type="checkbox" value="1">    
  </td>
</tr>
<form accept-charset="UTF-8" action="/email_notifications/255" class="edit_email_notification" id="edit_email_notification_255" method="post"></form>

これがフォームのセットアップ方法です。間違っている場合は修正してください

  <% @setting.email_notifications.each do |en| %>
    <%= form_for en do |u| %>
      <tr>
        <td><%= en.notification.name %></td>
        <td><%= u.check_box :primary, { :id => "email_notification_primary_" + en.id.to_s } %></td>
        <td><%= u.check_box :secondary, { :id => "email_notification_secondary_" + en.id.to_s } %></td>
        <td><%= u.select :interval, @days, { :id => "email_notification_secondary_" + en.id.to_s } if en.notification.required_intervals? %></td>
        <td><%= u.submit %></td>
      </tr>
    <% end %>
  <% end %>

主な問題は、クラスごとに要素を取得してからタイプしようとすると、何も選択されず、フォーム要素が入力要素の外側にあるため、これが予想されることです。

$('.email_notification 入力[タイプ=チェックボックス]')

アップデート

それが変更を加える場合、私はtwitter bootstrapテーブルを使用しています

4

1 に答える 1

1

フォーム要素内にテーブルをラップすると、次のようになります。

<table>
  <% @setting.email_notifications.each do |en| %>
  <tr><td>
     <%= form_for en do |u| %>
        <table>
         <tr>
          <td><%= en.notification.name %></td>
          <td><%= u.check_box :primary, { :id => "email_notification_primary_" + en.id.to_s } %></td>
          <td><%= u.check_box :secondary, { :id => "email_notification_secondary_" + en.id.to_s } %></td>
          <td><%= u.select :interval, @days, { :id => "email_notification_secondary_" + en.id.to_s } if en.notification.required_intervals? %></td>
          <td><%= u.submit %></td>
        </tr>
       </table>
     <% end %>
  </td></tr>
  <% end %>
</table>

で別のものを見ることができますjsffidle

しかし、提案するだけです: 可能であれば、テーブルなしでフォームを作成してください。

于 2013-07-04T10:35:18.090 に答える