check_box_tag 如何做到被选中返回1,未选中返回0

背景介绍:由于某种原因不能使用check_box,只能使用check_box_tag,check_box_tag 有个属性value, 如果写“1”那就在选中后返回1,如果没有选择就啥也没有了,那么如何实现选中返回1,没选择返回0呢?

首先check_box是可以做到的,我们可以看看它是啥

check_box (ActionView::Helpers::FormHelper) - APIdockhttps://apidock.com/rails/ActionView/Helpers/FormHelper/check_box#1001-Sending-array-parameters直接通过例子看本质:

# Let's say that @post.validated? is 1:
check_box("post", "validated")
# => <input name="post[validated]" type="hidden" value="0" />
#    <input checked="checked" type="checkbox" id="post_validated" name="post[validated]" value="1" />

# Let's say that @puppy.gooddog is "no":
check_box("puppy", "gooddog", {}, "yes", "no")
# => <input name="puppy[gooddog]" type="hidden" value="no" />
#    <input type="checkbox" id="puppy_gooddog" name="puppy[gooddog]" value="yes" />

check_box("eula", "accepted", { class: 'eula_check' }, "yes", "no")
# => <input name="eula[accepted]" type="hidden" value="no" />
#    <input type="checkbox" class="eula_check" id="eula_accepted" name="eula[accepted]" value="yes" />

再来看看check_box_tag是啥check_box_tag (ActionView::Helpers::FormTagHelper) - APIdockhttps://apidock.com/rails/ActionView/Helpers/FormTagHelper/check_box_tag

check_box_tag 'accept'
# => <input id="accept" name="accept" type="checkbox" value="1" />

check_box_tag 'rock', 'rock music'
# => <input id="rock" name="rock" type="checkbox" value="rock music" />

check_box_tag 'receive_email', 'yes', true
# => <input checked="checked" id="receive_email" name="receive_email" type="checkbox" value="yes" />

check_box_tag 'tos', 'yes', false, class: 'accept_tos'
# => <input class="accept_tos" id="tos" name="tos" type="checkbox" value="yes" />

check_box_tag 'eula', 'accepted', false, disabled: true
# => <input disabled="disabled" id="eula" name="eula" type="checkbox" value="accepted" />

看的很明显,check_box比check_box_tag多了一个可以隐藏input

所以在使用check_box_tag可以自己添加一个:

<%= hidden_field_tag "name", "0" %>
<%= check_box_tag "name", "1", true %>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值