@ -537,18 +537,21 @@ $.fn.form = function(fields, parameters) {
$allModules
. each ( function ( ) {
var
$module = $ ( this ) ,
$field = $ ( this ) . find ( selector . field ) ,
$group = $ ( this ) . find ( selector . group ) ,
$message = $ ( this ) . find ( selector . message ) ,
$prompt = $ ( this ) . find ( selector . prompt ) ,
$submit = $ ( this ) . find ( selector . submit ) ,
formErrors = [ ] ,
keyStuckDown = false ,
element = this ,
instance = $module . data ( moduleNamespace ) ,
$module = $ ( this ) ,
$field = $ ( this ) . find ( selector . field ) ,
$group = $ ( this ) . find ( selector . group ) ,
$message = $ ( this ) . find ( selector . message ) ,
$prompt = $ ( this ) . find ( selector . prompt ) ,
$submit = $ ( this ) . find ( selector . submit ) ,
$clear = $ ( this ) . find ( selector . clear ) ,
$reset = $ ( this ) . find ( selector . reset ) ,
formErrors = [ ] ,
keyHeldDown = false ,
element = this ,
instance = $module . data ( moduleNamespace ) ,
module
;
@ -557,6 +560,7 @@ $.fn.form = function(fields, parameters) {
initialize : function ( ) {
module . verbose ( 'Initializing form validation' , $module , validation , settings ) ;
module . bindEvents ( ) ;
module . set . defaults ( ) ;
module . instantiate ( ) ;
} ,
@ -599,7 +603,6 @@ $.fn.form = function(fields, parameters) {
} ,
bindEvents : function ( ) {
if ( settings . keyboardShortcuts ) {
$field
. on ( 'keydown' + eventNamespace , module . event . field . keydown )
@ -611,8 +614,11 @@ $.fn.form = function(fields, parameters) {
$field
. on ( 'blur' + eventNamespace , module . event . field . blur )
;
// attach submit events
// attach events to common elements
module . attachEvents ( $submit , 'submit' ) ;
module . attachEvents ( $reset , 'reset' ) ;
module . attachEvents ( $clear , 'clear' ) ;
$field
. each ( function ( ) {
@ -627,6 +633,78 @@ $.fn.form = function(fields, parameters) {
;
} ,
clear : function ( ) {
$field
. each ( function ( ) {
var
$field = $ ( this ) ,
$element = $field . parent ( ) ,
$fieldGroup = $field . closest ( $group ) ,
$prompt = $fieldGroup . find ( selector . prompt ) ,
defaultValue = $field . data ( metadata . defaultValue ) || '' ,
isCheckbox = $element . is ( selector . uiCheckbox ) ,
isDropdown = $element . is ( selector . uiDropdown ) ,
isErrored = $fieldGroup . hasClass ( className . error )
;
if ( isErrored ) {
module . verbose ( 'Resetting error on field' , $fieldGroup ) ;
$fieldGroup . removeClass ( className . error ) ;
$prompt . remove ( ) ;
}
if ( isDropdown ) {
module . verbose ( 'Resetting dropdown value' , $element , defaultValue ) ;
$element . dropdown ( 'clear' ) ;
}
else if ( isCheckbox ) {
$element . checkbox ( 'uncheck' ) ;
}
else {
module . verbose ( 'Resetting field value' , $field , defaultValue ) ;
$field . val ( '' ) ;
}
} )
;
} ,
reset : function ( ) {
$field
. each ( function ( ) {
var
$field = $ ( this ) ,
$element = $field . parent ( ) ,
$fieldGroup = $field . closest ( $group ) ,
$prompt = $fieldGroup . find ( selector . prompt ) ,
defaultValue = $field . data ( metadata . defaultValue ) || '' ,
isCheckbox = $element . is ( selector . uiCheckbox ) ,
isDropdown = $element . is ( selector . uiDropdown ) ,
isErrored = $fieldGroup . hasClass ( className . error )
;
if ( isErrored ) {
module . verbose ( 'Resetting error on field' , $fieldGroup ) ;
$fieldGroup . removeClass ( className . error ) ;
$prompt . remove ( ) ;
}
if ( isDropdown ) {
module . verbose ( 'Resetting dropdown value' , $element , defaultValue ) ;
$element . dropdown ( 'restore defaults' ) ;
}
else if ( isCheckbox ) {
module . verbose ( 'Resetting checkbox value' , $element , defaultValue ) ;
if ( defaultValue === true ) {
$element . checkbox ( 'check' ) ;
}
else {
$element . checkbox ( 'uncheck' ) ;
}
}
else {
module . verbose ( 'Resetting field value' , $field , defaultValue ) ;
$field . val ( defaultValue ) ;
}
} )
;
} ,
removeEvents : function ( ) {
$module
. off ( eventNamespace )
@ -663,18 +741,18 @@ $.fn.form = function(fields, parameters) {
$submit
. addClass ( className . pressed )
;
if ( ! keyStuck Down ) {
if ( ! keyHeld Down ) {
$field
. one ( 'keyup' + eventNamespace , module . event . field . keyup )
;
module . submit ( ) ;
module . debug ( 'Enter pressed on input submitting form' ) ;
}
keyStuck Down = true ;
keyHeld Down = true ;
}
} ,
keyup : function ( ) {
keyStuck Down = false ;
keyHeld Down = false ;
$submit . removeClass ( className . pressed ) ;
} ,
blur : function ( ) {
@ -747,6 +825,59 @@ $.fn.form = function(fields, parameters) {
}
} ) ;
return rules || false ;
} ,
value : function ( field ) {
var
fields = [ ] ,
results
;
fields . push ( field ) ;
results = module . get . values . call ( element , fields ) ;
return results [ field ] ;
} ,
values : function ( fields ) {
var
values = { }
;
// return all fields if no parameters
if ( ! $ . isArray ( fields ) ) {
fields = $field ;
}
$ . each ( fields , function ( index , field ) {
var
$field = ( typeof field === 'string' )
? module . get . field ( field )
: $ ( field ) ,
type = $field . prop ( 'type' ) ,
name = $field . prop ( 'name' ) ,
value = $field . val ( ) ,
isCheckbox = $field . is ( selector . checkbox ) ,
isRadio = $field . is ( selector . radio ) ,
isChecked = ( isCheckbox )
? $field . is ( ':checked' )
: false
;
if ( name ) {
if ( isRadio ) {
if ( isChecked ) {
values [ name ] = value ;
}
}
else if ( isCheckbox ) {
if ( isChecked ) {
values [ name ] = true ;
}
else {
module . debug ( 'Omitted unchecked checkbox' , $field ) ;
return true ;
}
}
else {
values [ name ] = value ;
}
}
} ) ;
return values ;
}
} ,
@ -854,11 +985,74 @@ $.fn.form = function(fields, parameters) {
. addClass ( className . success )
;
} ,
defaults : function ( ) {
$field
. each ( function ( ) {
var
$field = $ ( this ) ,
isCheckbox = ( $field . filter ( selector . checkbox ) . length > 0 ) ,
value = ( isCheckbox )
? $field . is ( ':checked' )
: $field . val ( )
;
$field . data ( metadata . defaultValue , value ) ;
} )
;
} ,
error : function ( ) {
$module
. removeClass ( className . success )
. addClass ( className . error )
;
} ,
value : function ( field , value ) {
var
fields = { }
;
fields [ field ] = value ;
return module . set . values . call ( element , fields ) ;
} ,
values : function ( fields ) {
if ( $ . isEmptyObject ( fields ) ) {
return ;
}
$ . each ( fields , function ( key , value ) {
var
$field = module . get . field ( key ) ,
$element = $field . parent ( ) ,
isCheckbox = $element . is ( selector . uiCheckbox ) ,
isDropdown = $element . is ( selector . uiDropdown ) ,
isRadio = $field . is ( selector . radio ) ,
fieldExists = ( $field . length > 0 )
;
if ( fieldExists ) {
if ( isRadio && isCheckbox ) {
module . verbose ( 'Selecting radio value' , value , $field ) ;
$field . filter ( '[value="' + value + '"]' )
. parent ( selector . uiCheckbox )
. checkbox ( 'check' )
;
}
else if ( isCheckbox ) {
module . verbose ( 'Setting checkbox value' , value , $element ) ;
if ( value === true ) {
$element . checkbox ( 'check' ) ;
}
else {
$element . checkbox ( 'uncheck' ) ;
}
}
else if ( isDropdown ) {
module . verbose ( 'Setting dropdown value' , value , $element ) ;
$element . dropdown ( 'set selected' , value ) ;
}
else {
module . verbose ( 'Setting field value' , value , $field ) ;
$field . val ( value ) ;
}
}
} ) ;
module . validate . form ( ) ;
}
} ,
@ -871,7 +1065,7 @@ $.fn.form = function(fields, parameters) {
;
// input keydown event will fire submit repeatedly by browser default
if ( keyStuck Down ) {
if ( keyHeld Down ) {
return false ;
}
@ -1103,7 +1297,7 @@ $.fn.form = function(fields, parameters) {
}
} ) ;
}
if ( $ . isFunction ( found ) ) {
if ( $ . isFunction ( found ) ) {
response = found . apply ( context , passedArguments ) ;
}
else if ( found !== undefined ) {
@ -1163,31 +1357,36 @@ $.fn.form.settings = {
transition : 'scale' ,
duration : 200 ,
onValid : function ( ) { } ,
onInvalid : function ( ) { } ,
onSuccess : function ( ) { return true ; } ,
onFailure : function ( ) { return false ; } ,
metadata : {
validate : 'validate'
defaultValue : 'default' ,
validate : 'validate'
} ,
selector : {
message : '.error.message' ,
field : 'input, textarea, select' ,
group : '.field' ,
checkbox : 'input[type="checkbox"], input[type="radio"]' ,
input : 'input' ,
prompt : '.prompt.label' ,
submit : '.submit'
checkbox : 'input[type="checkbox"], input[type="radio"]' ,
clear : '.clear' ,
field : 'input, textarea, select' ,
group : '.field' ,
input : 'input' ,
message : '.error.message' ,
prompt : '.prompt.label' ,
radio : 'input[type="radio"]' ,
reset : '.reset' ,
submit : '.submit' ,
uiCheckbox : '.ui.checkbox' ,
uiDropdown : '.ui.dropdown'
} ,
className : {
error : 'error' ,
success : 'success' ,
label : 'ui prompt label ',
pressed : 'down' ,
label : 'ui prompt label '
success : 'success '
} ,
error : {
@ -1195,6 +1394,8 @@ $.fn.form.settings = {
} ,
templates : {
// template that produces error message
error : function ( errors ) {
var
html = '<ul class="list">'
@ -1205,6 +1406,8 @@ $.fn.form.settings = {
html += '</ul>' ;
return $ ( html ) ;
} ,
// template that produces label
prompt : function ( errors ) {
return $ ( '<div/>' )
. addClass ( 'ui red pointing prompt label' )
@ -1247,20 +1450,20 @@ $.fn.form.settings = {
max ,
parts
;
if ( range === undefined || range === '' || range === '..' ) {
if ( range === undefined || range === '' || range === '..' ) {
// do nothing
}
else if ( range . indexOf ( '..' ) == - 1 ) {
if ( intRegExp . test ( range ) ) {
else if ( range . indexOf ( '..' ) == - 1 ) {
if ( intRegExp . test ( range ) ) {
min = max = range - 0 ;
}
}
else {
parts = range . split ( '..' , 2 ) ;
if ( intRegExp . test ( parts [ 0 ] ) ) {
if ( intRegExp . test ( parts [ 0 ] ) ) {
min = parts [ 0 ] - 0 ;
}
if ( intRegExp . test ( parts [ 1 ] ) ) {
if ( intRegExp . test ( parts [ 1 ] ) ) {
max = parts [ 1 ] - 0 ;
}
}
@ -2391,7 +2594,7 @@ $.fn.checkbox.settings = {
} ,
selector : {
input : 'input[type=checkbox], input[type=radio]' ,
input : 'input[type=" checkbox" ], input[type=" radio" ]' ,
label : 'label'
}
@ -3787,31 +3990,23 @@ $.fn.dropdown = function(parameters) {
nothing : function ( ) { } ,
hide : function ( ) {
module . hide ( function ( ) {
module . remove . filteredItem ( ) ;
} ) ;
} ,
select : function ( text , value ) {
activate : function ( text , value ) {
value = ( value !== undefined )
? value
: text
;
module . set . selected ( value ) ;
module . set . value ( value ) ;
module . hide ( function ( ) {
module . remove . filteredItem ( ) ;
} ) ;
} ,
activate : function ( text , value ) {
select : function ( text , value ) {
value = ( value !== undefined )
? value
: text
;
module . set . selected ( value ) ;
module . set . value ( value ) ;
module . hide ( function ( ) {
module . remove . filteredItem ( ) ;
} ) ;
@ -3823,7 +4018,12 @@ $.fn.dropdown = function(parameters) {
: text
;
module . set . selected ( value ) ;
module . set . value ( value ) ;
module . hide ( function ( ) {
module . remove . filteredItem ( ) ;
} ) ;
} ,
hide : function ( ) {
module . hide ( function ( ) {
module . remove . filteredItem ( ) ;
} ) ;
@ -3862,7 +4062,7 @@ $.fn.dropdown = function(parameters) {
}
} ,
choiceValue : function ( $choice , choiceText ) {
choiceText = choiceText || module . get . choiceText ( $text ) ;
choiceText = choiceText || module . get . choiceText ( $choice ) ;
return ( $choice . data ( metadata . value ) !== undefined )
? $choice . data ( metadata . value )
: ( typeof choiceText === 'string' )
@ -3996,7 +4196,7 @@ $.fn.dropdown = function(parameters) {
;
module . debug ( 'Restoring default text' , defaultText ) ;
module . set . text ( defaultText ) ;
$text . addClass ( settings . className . placeholder ) ;
$text . addClass ( className . placeholder ) ;
} ,
defaultValue : function ( ) {
var
@ -4006,7 +4206,6 @@ $.fn.dropdown = function(parameters) {
module . debug ( 'Restoring default value' , defaultValue ) ;
if ( defaultValue . length ) {
module . set . selected ( defaultValue ) ;
module . set . value ( defaultValue ) ;
}
else {
module . remove . activeItem ( ) ;
@ -4019,6 +4218,7 @@ $.fn.dropdown = function(parameters) {
save : {
defaults : function ( ) {
module . save . defaultText ( ) ;
module . save . placeholderText ( ) ;
module . save . defaultValue ( ) ;
} ,
defaultValue : function ( ) {
@ -4026,9 +4226,25 @@ $.fn.dropdown = function(parameters) {
} ,
defaultText : function ( ) {
$module . data ( metadata . defaultText , $text . text ( ) ) ;
} ,
placeholderText : function ( ) {
if ( $text . hasClass ( className . placeholder ) ) {
$module . data ( metadata . placeholderText , $text . text ( ) ) ;
}
}
} ,
clear : function ( ) {
var
placeholderText = $module . data ( metadata . placeholderText )
;
module . set . text ( placeholderText ) ;
module . set . value ( '' ) ;
module . remove . activeItem ( ) ;
module . remove . selectedItem ( ) ;
$text . addClass ( className . placeholder ) ;
} ,
set : {
filtered : function ( ) {
var
@ -4156,20 +4372,21 @@ $.fn.dropdown = function(parameters) {
selected : function ( value ) {
var
$selectedItem = module . get . item ( value ) ,
selectedText
selectedText ,
selectedValue
;
if ( $selectedItem ) {
module . debug ( 'Setting selected menu item to' , $selectedItem ) ;
module . remove . activeItem ( ) ;
module . remove . selectedItem ( ) ;
$selectedItem
. addClass ( className . active )
. addClass ( className . selected )
;
selectedText = module . get . choiceText ( $selectedItem ) ;
selectedText = module . get . choiceText ( $selectedItem ) ;
selectedValue = module . get . choiceValue ( $selectedItem , selectedText ) ;
module . set . text ( selectedText ) ;
module . set . value ( selectedValue ) ;
settings . onChange . call ( element , value , selectedText , $selectedItem ) ;
}
}
@ -4689,10 +4906,11 @@ $.fn.dropdown.settings = {
} ,
metadata : {
defaultText : 'defaultText' ,
defaultValue : 'defaultValue' ,
text : 'text' ,
value : 'value'
defaultText : 'defaultText' ,
defaultValue : 'defaultValue' ,
placeholderText : 'placeholderText' ,
text : 'text' ,
value : 'value'
} ,
selector : {
@ -15434,18 +15652,21 @@ $.fn.form = function(fields, parameters) {
$allModules
. each ( function ( ) {
var
$module = $ ( this ) ,
$field = $ ( this ) . find ( selector . field ) ,
$group = $ ( this ) . find ( selector . group ) ,
$message = $ ( this ) . find ( selector . message ) ,
$prompt = $ ( this ) . find ( selector . prompt ) ,
$submit = $ ( this ) . find ( selector . submit ) ,
formErrors = [ ] ,
keyStuckDown = false ,
element = this ,
instance = $module . data ( moduleNamespace ) ,
$module = $ ( this ) ,
$field = $ ( this ) . find ( selector . field ) ,
$group = $ ( this ) . find ( selector . group ) ,
$message = $ ( this ) . find ( selector . message ) ,
$prompt = $ ( this ) . find ( selector . prompt ) ,
$submit = $ ( this ) . find ( selector . submit ) ,
$clear = $ ( this ) . find ( selector . clear ) ,
$reset = $ ( this ) . find ( selector . reset ) ,
formErrors = [ ] ,
keyHeldDown = false ,
element = this ,
instance = $module . data ( moduleNamespace ) ,
module
;
@ -15454,6 +15675,7 @@ $.fn.form = function(fields, parameters) {
initialize : function ( ) {
module . verbose ( 'Initializing form validation' , $module , validation , settings ) ;
module . bindEvents ( ) ;
module . set . defaults ( ) ;
module . instantiate ( ) ;
} ,
@ -15496,7 +15718,6 @@ $.fn.form = function(fields, parameters) {
} ,
bindEvents : function ( ) {
if ( settings . keyboardShortcuts ) {
$field
. on ( 'keydown' + eventNamespace , module . event . field . keydown )
@ -15508,8 +15729,11 @@ $.fn.form = function(fields, parameters) {
$field
. on ( 'blur' + eventNamespace , module . event . field . blur )
;
// attach submit events
// attach events to common elements
module . attachEvents ( $submit , 'submit' ) ;
module . attachEvents ( $reset , 'reset' ) ;
module . attachEvents ( $clear , 'clear' ) ;
$field
. each ( function ( ) {
@ -15524,6 +15748,78 @@ $.fn.form = function(fields, parameters) {
;
} ,
clear : function ( ) {
$field
. each ( function ( ) {
var
$field = $ ( this ) ,
$element = $field . parent ( ) ,
$fieldGroup = $field . closest ( $group ) ,
$prompt = $fieldGroup . find ( selector . prompt ) ,
defaultValue = $field . data ( metadata . defaultValue ) || '' ,
isCheckbox = $element . is ( selector . uiCheckbox ) ,
isDropdown = $element . is ( selector . uiDropdown ) ,
isErrored = $fieldGroup . hasClass ( className . error )
;
if ( isErrored ) {
module . verbose ( 'Resetting error on field' , $fieldGroup ) ;
$fieldGroup . removeClass ( className . error ) ;
$prompt . remove ( ) ;
}
if ( isDropdown ) {
module . verbose ( 'Resetting dropdown value' , $element , defaultValue ) ;
$element . dropdown ( 'clear' ) ;
}
else if ( isCheckbox ) {
$element . checkbox ( 'uncheck' ) ;
}
else {
module . verbose ( 'Resetting field value' , $field , defaultValue ) ;
$field . val ( '' ) ;
}
} )
;
} ,
reset : function ( ) {
$field
. each ( function ( ) {
var
$field = $ ( this ) ,
$element = $field . parent ( ) ,
$fieldGroup = $field . closest ( $group ) ,
$prompt = $fieldGroup . find ( selector . prompt ) ,
defaultValue = $field . data ( metadata . defaultValue ) || '' ,
isCheckbox = $element . is ( selector . uiCheckbox ) ,
isDropdown = $element . is ( selector . uiDropdown ) ,
isErrored = $fieldGroup . hasClass ( className . error )
;
if ( isErrored ) {
module . verbose ( 'Resetting error on field' , $fieldGroup ) ;
$fieldGroup . removeClass ( className . error ) ;
$prompt . remove ( ) ;
}
if ( isDropdown ) {
module . verbose ( 'Resetting dropdown value' , $element , defaultValue ) ;
$element . dropdown ( 'restore defaults' ) ;
}
else if ( isCheckbox ) {
module . verbose ( 'Resetting checkbox value' , $element , defaultValue ) ;
if ( defaultValue === true ) {
$element . checkbox ( 'check' ) ;
}
else {
$element . checkbox ( 'uncheck' ) ;
}
}
else {
module . verbose ( 'Resetting field value' , $field , defaultValue ) ;
$field . val ( defaultValue ) ;
}
} )
;
} ,
removeEvents : function ( ) {
$module
. off ( eventNamespace )
@ -15560,18 +15856,18 @@ $.fn.form = function(fields, parameters) {
$submit
. addClass ( className . pressed )
;
if ( ! keyStuck Down ) {
if ( ! keyHeld Down ) {
$field
. one ( 'keyup' + eventNamespace , module . event . field . keyup )
;
module . submit ( ) ;
module . debug ( 'Enter pressed on input submitting form' ) ;
}
keyStuck Down = true ;
keyHeld Down = true ;
}
} ,
keyup : function ( ) {
keyStuck Down = false ;
keyHeld Down = false ;
$submit . removeClass ( className . pressed ) ;
} ,
blur : function ( ) {
@ -15644,6 +15940,59 @@ $.fn.form = function(fields, parameters) {
}
} ) ;
return rules || false ;
} ,
value : function ( field ) {
var
fields = [ ] ,
results
;
fields . push ( field ) ;
results = module . get . values . call ( element , fields ) ;
return results [ field ] ;
} ,
values : function ( fields ) {
var
values = { }
;
// return all fields if no parameters
if ( ! $ . isArray ( fields ) ) {
fields = $field ;
}
$ . each ( fields , function ( index , field ) {
var
$field = ( typeof field === 'string' )
? module . get . field ( field )
: $ ( field ) ,
type = $field . prop ( 'type' ) ,
name = $field . prop ( 'name' ) ,
value = $field . val ( ) ,
isCheckbox = $field . is ( selector . checkbox ) ,
isRadio = $field . is ( selector . radio ) ,
isChecked = ( isCheckbox )
? $field . is ( ':checked' )
: false
;
if ( name ) {
if ( isRadio ) {
if ( isChecked ) {
values [ name ] = value ;
}
}
else if ( isCheckbox ) {
if ( isChecked ) {
values [ name ] = true ;
}
else {
module . debug ( 'Omitted unchecked checkbox' , $field ) ;
return true ;
}
}
else {
values [ name ] = value ;
}
}
} ) ;
return values ;
}
} ,
@ -15751,11 +16100,74 @@ $.fn.form = function(fields, parameters) {
. addClass ( className . success )
;
} ,
defaults : function ( ) {
$field
. each ( function ( ) {
var
$field = $ ( this ) ,
isCheckbox = ( $field . filter ( selector . checkbox ) . length > 0 ) ,
value = ( isCheckbox )
? $field . is ( ':checked' )
: $field . val ( )
;
$field . data ( metadata . defaultValue , value ) ;
} )
;
} ,
error : function ( ) {
$module
. removeClass ( className . success )
. addClass ( className . error )
;
} ,
value : function ( field , value ) {
var
fields = { }
;
fields [ field ] = value ;
return module . set . values . call ( element , fields ) ;
} ,
values : function ( fields ) {
if ( $ . isEmptyObject ( fields ) ) {
return ;
}
$ . each ( fields , function ( key , value ) {
var
$field = module . get . field ( key ) ,
$element = $field . parent ( ) ,
isCheckbox = $element . is ( selector . uiCheckbox ) ,
isDropdown = $element . is ( selector . uiDropdown ) ,
isRadio = $field . is ( selector . radio ) ,
fieldExists = ( $field . length > 0 )
;
if ( fieldExists ) {
if ( isRadio && isCheckbox ) {
module . verbose ( 'Selecting radio value' , value , $field ) ;
$field . filter ( '[value="' + value + '"]' )
. parent ( selector . uiCheckbox )
. checkbox ( 'check' )
;
}
else if ( isCheckbox ) {
module . verbose ( 'Setting checkbox value' , value , $element ) ;
if ( value === true ) {
$element . checkbox ( 'check' ) ;
}
else {
$element . checkbox ( 'uncheck' ) ;
}
}
else if ( isDropdown ) {
module . verbose ( 'Setting dropdown value' , value , $element ) ;
$element . dropdown ( 'set selected' , value ) ;
}
else {
module . verbose ( 'Setting field value' , value , $field ) ;
$field . val ( value ) ;
}
}
} ) ;
module . validate . form ( ) ;
}
} ,
@ -15768,7 +16180,7 @@ $.fn.form = function(fields, parameters) {
;
// input keydown event will fire submit repeatedly by browser default
if ( keyStuck Down ) {
if ( keyHeld Down ) {
return false ;
}
@ -16000,7 +16412,7 @@ $.fn.form = function(fields, parameters) {
}
} ) ;
}
if ( $ . isFunction ( found ) ) {
if ( $ . isFunction ( found ) ) {
response = found . apply ( context , passedArguments ) ;
}
else if ( found !== undefined ) {
@ -16060,31 +16472,36 @@ $.fn.form.settings = {
transition : 'scale' ,
duration : 200 ,
onValid : function ( ) { } ,
onInvalid : function ( ) { } ,
onSuccess : function ( ) { return true ; } ,
onFailure : function ( ) { return false ; } ,
metadata : {
validate : 'validate'
defaultValue : 'default' ,
validate : 'validate'
} ,
selector : {
message : '.error.message' ,
field : 'input, textarea, select' ,
group : '.field' ,
checkbox : 'input[type="checkbox"], input[type="radio"]' ,
input : 'input' ,
prompt : '.prompt.label' ,
submit : '.submit'
checkbox : 'input[type="checkbox"], input[type="radio"]' ,
clear : '.clear' ,
field : 'input, textarea, select' ,
group : '.field' ,
input : 'input' ,
message : '.error.message' ,
prompt : '.prompt.label' ,
radio : 'input[type="radio"]' ,
reset : '.reset' ,
submit : '.submit' ,
uiCheckbox : '.ui.checkbox' ,
uiDropdown : '.ui.dropdown'
} ,
className : {
error : 'error' ,
success : 'success' ,
label : 'ui prompt label ',
pressed : 'down' ,
label : 'ui prompt label '
success : 'success '
} ,
error : {
@ -16092,6 +16509,8 @@ $.fn.form.settings = {
} ,
templates : {
// template that produces error message
error : function ( errors ) {
var
html = '<ul class="list">'
@ -16102,6 +16521,8 @@ $.fn.form.settings = {
html += '</ul>' ;
return $ ( html ) ;
} ,
// template that produces label
prompt : function ( errors ) {
return $ ( '<div/>' )
. addClass ( 'ui red pointing prompt label' )
@ -16144,20 +16565,20 @@ $.fn.form.settings = {
max ,
parts
;
if ( range === undefined || range === '' || range === '..' ) {
if ( range === undefined || range === '' || range === '..' ) {
// do nothing
}
else if ( range . indexOf ( '..' ) == - 1 ) {
if ( intRegExp . test ( range ) ) {
else if ( range . indexOf ( '..' ) == - 1 ) {
if ( intRegExp . test ( range ) ) {
min = max = range - 0 ;
}
}
else {
parts = range . split ( '..' , 2 ) ;
if ( intRegExp . test ( parts [ 0 ] ) ) {
if ( intRegExp . test ( parts [ 0 ] ) ) {
min = parts [ 0 ] - 0 ;
}
if ( intRegExp . test ( parts [ 1 ] ) ) {
if ( intRegExp . test ( parts [ 1 ] ) ) {
max = parts [ 1 ] - 0 ;
}
}