@**
* Generate an HTML select.
*
* Example:
* {{{
* @select(field = myForm("isDone"), options = options(List("Yes","No")))
* }}}
*
* @param field The form field.
* @param options Sequence of options as pairs of value and HTML.
* @param args Set of extra attributes ('''_default''' is a special argument).
* @param handler The field constructor.
*@
@(field: play.api.data.Field, options: Seq[(String,String)], args: (Symbol,Any)*)(implicit handler: FieldConstructor, messages: play.api.i18n.Messages)
@input(field, args:_*) { (id, name, value, htmlArgs) =>
@defining( if( htmlArgs.contains('multiple) ) "%s[]".format(name) else name ) { selectName =>
@defining( ( !field.indexes.isEmpty && htmlArgs.contains('multiple) ) match {
case true => field.indexes.map( i => field("[%s]".format(i)).value ).flatten.toSet
case _ => field.value.toSet
}){ values =>
}}
}