Skip to content

Instantly share code, notes, and snippets.

@Ulv
Created August 30, 2014 12:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Ulv/722bd3b08c34ef3208e3 to your computer and use it in GitHub Desktop.
Save Ulv/722bd3b08c34ef3208e3 to your computer and use it in GitHub Desktop.
form with linked selects (see https://gist.github.com/Ulv/ac611b3ea94985cbb290)
###
# форма со связанными селектами
# - стилизация (https://github.com/Dimox/jQueryFormStyler)
# - цепляем функционал связанных селектов
# - геттеры
###
$.fn.extend
bestdiplomForm: (options) ->
@defaultOptions =
### селектор, к которому будем применять .styler() ###
styleElementsSelector: 'input[type=text], input[type=password], select'
### пустое значение (при котором дизаблим второй селект) ###
emptyVal: "0"
### основной селект, объект jQuery ###
primarySelect: null
### зависимый селект, объект jQuery ###
secondarySelect: null
settings = $.extend({}, @defaultOptions, options)
### иницализация jQuery styler ###
decorateFormInputs = ($el) ->
$(settings.styleElementsSelector).styler()
### возвращает главный селект ###
@getPrimarySelect = () ->
settings.primarySelect
### возвращает зависимый селект ###
@getSecondarySelect = () ->
settings.secondarySelect
### возвращает значение главного селекта ###
@getPrimaryValue = () ->
$(@getPrimarySelect()).val()
### возвращает значение зависимого селекта ###
@getSecondaryValue = () ->
$(@getSecondarySelect()).val()
return @each (i, el) ->
$el = $(el)
###
если в параметрах не указаны primarySelect и secondarySelect - берутся первые
2 селекта формы
###
if !settings.primarySelect or !settings.secondarySelect
[settings.primarySelect, settings.secondarySelect] = $el.find('select')
$([settings.primarySelect, settings.secondarySelect])
.bestdiplomSelect(
emptyVal: settings.emptyVal
primarySelect: settings.primarySelect
secondarySelect: settings.secondarySelect
)
decorateFormInputs($el)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment