チェックボックスのラベルをクリックしてフォームを送信します。チェックボックスは表示されず、ラベルはボタンとしてスタイリングされます。これは私のコードです:チェックボックスのラベルをクリックしてデータを送信する方法
<%= form_tag(fetch_games_index_path, method: :get, id: 'games-filter-form', remote: true) do %>
<%= check_box_tag 'mobile[]', 'true', false, id: 'games-filter-checkbox', class: 'games-filter-checkbox' %>
<label for="games-filter-checkbox" id="game-mobile-0"></label>
<% end %>
とそれに対応するJS:
$('#game-mobile-0').click(function() {
$('#games-filter-form input[type="hidden"]').submit();
});
こうすることによって、私は初めてのラベルをクリックしたとき、それはtrue
にあるチェックボックスを設定しますが、送信されたのparamsがあります空の。もう一度ラベルをクリックすると、チェックボックスはfalse
に設定され、パラメータ:"mobile"=>["true"]
に表示されます。私は次のコードを試しました:
$('#game-mobile-0').click(function() {
if($('#games-filter-checkbox').prop('checked', true)) {
$('#games-filter-form input[type="hidden"]').submit();
}
});
これをやって、スタイルの付いたアニメーションは動作しません。この問題を解決する方法は何ですか?先にありがとう。ここで
をそれでも、問題が残っています。それはフォームを提出し、私のスタイルのラベルをアニメートしません。 –
アニメーションは何ですか?フォームが送信されたら、ラベルのスタイルを別のものに変更しますか? –
スタイリングラベルはフォームの送信とは関係ありません。送信が発生したときにスタイルを変更する場合は、jquery addclassまたはcssメソッドを使用する必要があります。 '$( '#game-mobile-0')。removeClass(" oldClass ")。addClass(" newClass ");' $( '#games-filter-form')の後にsubmit(); ' –