Skip to content

Instantly share code, notes, and snippets.

@SergXIIIth
Created December 17, 2012 21:11
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save SergXIIIth/4322304 to your computer and use it in GitHub Desktop.
Save SergXIIIth/4322304 to your computer and use it in GitHub Desktop.
Automatic create and set html hidden field base on Bootstrap buttons radio values Javascript/Coffeescript plugin
# Automatic create and set html hidden field
# base on Bootstrap buttons radio values
# Javascript/Coffeescript plugin
#
# Html/Slim
# .btn-group data-toggle='buttons-radio' data-field='offer[type]' data-init-val=@offer.type
# a.btn href='#' data-val='flat' Flat
# a.btn href='#' data-val='house' House
#
# Usage
# $ -> Common.buttons_radio()
#
Common.buttons_radio = ->
set_hidden_value = (name, val) ->
$("[name='#{name}']").val(val).change()
$(".btn-group[data-toggle='buttons-radio'] .btn").click (e) ->
name = $(@).closest("[data-toggle='buttons-radio']").data('field')
val = $(@).data('val')
set_hidden_value(name, val)
e.preventDefault()
# create hidden fields before any click, allow use them in other scripts
$(".btn-group[data-toggle='buttons-radio']").each ->
name = $(@).data('field')
if $("[name='#{name}']").size() == 0
$("<input type='hidden' name='#{name}' />").appendTo(@)
# restore selection base on html
# (for validation on server and restory state after it)
$(".btn-group[data-init-val]").each ->
val = $(@).data('init-val')
$(".btn[data-val='#{val}']", @).click()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment