Skip to content

Commit 919ac57

Browse files
committed
Omit the multiple attribute for checkbox collection hidden field. Fixes bootstrap-ruby#421
1 parent 00a3fed commit 919ac57

File tree

3 files changed

+17
-17
lines changed

3 files changed

+17
-17
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ This generates:
718718
<label class="form-check-label" for="user_skill_level_2">Farming</label>
719719
</div>
720720
</div>
721-
<input autocomplete="off" id="user_skills" multiple name="user[skills][]" type="hidden" value="">
721+
<input autocomplete="off" id="user_skills" name="user[skills][]" type="hidden" value="">
722722
<div class="mb-3">
723723
<label class="form-label" for="user_skills">Skills</label>
724724
<div class="form-check">

lib/bootstrap_form/inputs/collection_check_boxes.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def collection_check_boxes_with_bootstrap(*args)
1515
end
1616

1717
if args.extract_options!.symbolize_keys!.delete(:include_hidden) { true }
18-
html.prepend hidden_field(args.first, value: "", multiple: true)
18+
html.prepend hidden_field(args.first, value: "", name: field_name(args[0], multiple: true))
1919
end
2020
html
2121
end

test/bootstrap_checkbox_test.rb

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
170170
test "collection_check_boxes renders the form_group correctly" do
171171
collection = [Address.new(id: 1, street: "Foobar")]
172172
expected = <<~HTML
173-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
173+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
174174
<div class="mb-3">
175175
<label class="form-label" for="user_misc">This is a checkbox collection</label>
176176
<div class="form-check">
@@ -188,7 +188,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
188188
test "collection_check_boxes renders multiple checkboxes correctly" do
189189
collection = [Address.new(id: 1, street: "Foo"), Address.new(id: 2, street: "Bar")]
190190
expected = <<~HTML
191-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
191+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
192192
<div class="mb-3">
193193
<label class="form-label" for="user_misc">Misc</label>
194194
<div class="form-check">
@@ -213,7 +213,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
213213
struct = Struct.new(:id, :name)
214214
collection = [struct.new(1, "Foo"), struct.new("二", "Bar")]
215215
expected = <<~HTML
216-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
216+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
217217
<div class="mb-3">
218218
<label class="form-label" for="user_misc">Misc</label>
219219
<div class="form-check">
@@ -233,7 +233,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
233233
test "collection_check_boxes renders inline checkboxes correctly" do
234234
collection = [Address.new(id: 1, street: "Foo"), Address.new(id: 2, street: "Bar")]
235235
expected = <<~HTML
236-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
236+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
237237
<div class="mb-3">
238238
<label class="form-label" for="user_misc">Misc</label>
239239
<div class="form-check form-check-inline">
@@ -258,7 +258,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
258258
test "collection_check_boxes renders with checked option correctly" do
259259
collection = [Address.new(id: 1, street: "Foo"), Address.new(id: 2, street: "Bar")]
260260
expected = <<~HTML
261-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
261+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
262262
<div class="mb-3">
263263
<label class="form-label" for="user_misc">Misc</label>
264264
<div class="form-check">
@@ -285,7 +285,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
285285
test "collection_check_boxes renders with multiple checked options correctly" do
286286
collection = [Address.new(id: 1, street: "Foo"), Address.new(id: 2, street: "Bar")]
287287
expected = <<~HTML
288-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
288+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
289289
<div class="mb-3">
290290
<label class="form-label" for="user_misc">Misc</label>
291291
<div class="form-check">
@@ -308,7 +308,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
308308
test "collection_check_boxes sanitizes values when generating label `for`" do
309309
collection = [Address.new(id: 1, street: "Foo St")]
310310
expected = <<~HTML
311-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
311+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
312312
<div class="mb-3">
313313
<label class="form-label" for="user_misc">Misc</label>
314314
<div class="form-check">
@@ -325,7 +325,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
325325
test "collection_check_boxes renders multiple checkboxes with labels defined by Proc :text_method correctly" do
326326
collection = [Address.new(id: 1, street: "Foo"), Address.new(id: 2, street: "Bar")]
327327
expected = <<~HTML
328-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
328+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
329329
<div class="mb-3">
330330
<label class="form-label" for="user_misc">Misc</label>
331331
<div class="form-check">
@@ -349,7 +349,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
349349
test "collection_check_boxes renders multiple checkboxes with values defined by Proc :value_method correctly" do
350350
collection = [Address.new(id: 1, street: "Foo"), Address.new(id: 2, street: "Bar")]
351351
expected = <<~HTML
352-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
352+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
353353
<div class="mb-3">
354354
<label class="form-label" for="user_misc">Misc</label>
355355
<div class="form-check">
@@ -373,7 +373,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
373373
test "collection_check_boxes renders multiple checkboxes with labels defined by lambda :text_method correctly" do
374374
collection = [Address.new(id: 1, street: "Foo"), Address.new(id: 2, street: "Bar")]
375375
expected = <<~HTML
376-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
376+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
377377
<div class="mb-3">
378378
<label class="form-label" for="user_misc">Misc</label>
379379
<div class="form-check">
@@ -397,7 +397,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
397397
test "collection_check_boxes renders multiple checkboxes with values defined by lambda :value_method correctly" do
398398
collection = [Address.new(id: 1, street: "Foo"), Address.new(id: 2, street: "Bar")]
399399
expected = <<~HTML
400-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
400+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
401401
<div class="mb-3">
402402
<label class="form-label" for="user_misc">Misc</label>
403403
<div class="form-check">
@@ -422,7 +422,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
422422
test "collection_check_boxes renders with checked option correctly with Proc :value_method" do
423423
collection = [Address.new(id: 1, street: "Foo"), Address.new(id: 2, street: "Bar")]
424424
expected = <<~HTML
425-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
425+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
426426
<div class="mb-3">
427427
<label class="form-label" for="user_misc">Misc</label>
428428
<div class="form-check">
@@ -449,7 +449,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
449449
test "collection_check_boxes renders with multiple checked options correctly with lambda :value_method" do
450450
collection = [Address.new(id: 1, street: "Foo"), Address.new(id: 2, street: "Bar")]
451451
expected = <<~HTML
452-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
452+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
453453
<div class="mb-3">
454454
<label class="form-label" for="user_misc">Misc</label>
455455
<div class="form-check">
@@ -520,7 +520,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
520520
expected = <<~HTML
521521
<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post">
522522
#{'<input name="utf8" type="hidden" value="&#x2713;"/>' unless ::Rails::VERSION::STRING >= '6'}
523-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
523+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
524524
<div class="mb-3">
525525
<label class="form-label" for="user_misc">Misc</label>
526526
<div class="form-check">
@@ -571,7 +571,7 @@ class BootstrapCheckboxTest < ActionView::TestCase
571571
expected = <<~HTML
572572
<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post">
573573
#{'<input name="utf8" type="hidden" value="&#x2713;"/>' unless ::Rails::VERSION::STRING >= '6'}
574-
<input #{autocomplete_attr} id="user_misc" multiple="multiple" name="user[misc][]" type="hidden" value="" />
574+
<input #{autocomplete_attr} id="user_misc" name="user[misc][]" type="hidden" value="" />
575575
<div class="mb-3">
576576
<label class="form-label" for="user_misc">Misc</label>
577577
<div class="form-check">

0 commit comments

Comments
 (0)