@@ -87,6 +87,7 @@ qwp.$fn = function(fn) {
8787 return window [ s ] ? s : false ;
8888} ;
8989function $noop ( ) { }
90+ function $false ( ) { return false ; }
9091function $L ( txt ) {
9192 if ( _LANG && _LANG [ txt ] ) txt = _LANG [ txt ] ;
9293 if ( arguments . length == 1 ) return txt ;
@@ -213,6 +214,13 @@ $h = {};
213214 $ . extend ( qwp , {
214215 _ :' ' ,
215216 br :'<br>' ,
217+ $ : function ( s , p ) {
218+ if ( qwp . isString ( s ) ) {
219+ if ( p ) return p . find ( s ) ;
220+ else return $ ( s ) ;
221+ }
222+ return s ;
223+ } ,
216224 isString : function ( v ) {
217225 return $ . type ( v ) == 'string' ;
218226 } ,
@@ -464,67 +472,85 @@ $h = {};
464472 $ . gritter . remove ( qwp . lastGritterId ) ;
465473 qwp . lastGritterId = false ;
466474 }
475+ } ,
476+ parseProps : function ( p ) {
477+ var o = { } ;
478+ if ( ! p || p . length === 0 ) return o ;
479+ p = p . split ( '|' ) ;
480+ for ( var i = 0 , cnt = p . length ; i < cnt ; ++ i ) {
481+ var a = p [ i ] ;
482+ var d = a . indexOf ( '=' ) ;
483+ if ( d == - 1 ) continue ;
484+ o [ a . substr ( 0 , d ) ] = a . substr ( d + 1 ) ;
485+ }
486+ return o ;
467487 }
468488 } ) ;
469489 qwp . ui = {
470490 defaultIcon : 'glyphicon' ,
471491 input : {
472- number : function ( s , enter , defaultValue , minValue , regExp , parent , params ) {
473- if ( qwp . isString ( s ) ) {
474- if ( parent ) parent . find ( s ) ;
475- else s = $ ( s ) ;
476- }
492+ number : function ( s , props , parent , params ) {
493+ s = qwp . $ ( s , parent ) ;
494+ s . unbind ( 'blur' ) . unbind ( 'keypress' ) ;
495+ if ( props . enter ) s . unbind ( 'keyup' ) ;
496+ if ( props . disablePaste ) s . unbind ( 'paste' ) . on ( 'paste' , $false ) ;
477497 s . keypress ( function ( e ) {
478498 if ( e . keyCode < 48 || e . keyCode > 57 ) return false ;
479499 } ) ;
480- if ( enter ) {
500+ if ( props . enter ) {
481501 s . keyup ( function ( e ) {
482502 if ( e . keyCode == 13 ) {
483- if ( window [ enter ] ) window [ enter ] ( e . delegateTarget , params ) ;
484- else eval ( enter ) ;
503+ if ( window [ props . enter ] ) window [ props . enter ] ( e . delegateTarget , params ) ;
504+ else eval ( props . enter ) ;
485505 }
486506 } ) ;
487507 }
488508 s . blur ( function ( e ) {
489509 var o = $ ( e . delegateTarget ) ;
490- var isDefinedValue = typeof ( defaultValue ) !== 'undefined' , v = o . val ( ) , isValid ;
510+ var isDefinedValue = typeof ( props . defaultValue ) !== 'undefined' , v = o . val ( ) , isValid ;
491511 if ( v . length === 0 ) {
492512 if ( isDefinedValue ) {
493- o . val ( defaultValue ) ;
513+ o . val ( props . defaultValue ) ;
494514 o . trigger ( 'change' , e ) ;
495515 }
496516 return ;
497517 }
498518 isValid = / ^ \d + $ / . test ( v ) ;
499- if ( isValid && regExp ) {
500- var re = new RegExp ( regExp ) ;
519+ if ( isValid && props . regExp ) {
520+ var re = new RegExp ( props . regExp ) ;
501521 isValid = re . test ( v ) ;
502522 }
503523 if ( ! isValid ) {
504- if ( isDefinedValue ) o . val ( defaultValue ) ;
524+ if ( isDefinedValue ) o . val ( props . defaultValue ) ;
505525 else o . val ( '' ) ;
506526 o . trigger ( 'change' , e ) ;
507527 return ;
508528 }
509- if ( minValue ) {
510- v = parseInt ( v ) ;
511- if ( v < parseInt ( minValue ) ) {
512- o . val ( minValue ) ;
529+ v = parseInt ( v ) ;
530+ if ( props . minValue ) {
531+ if ( v < parseInt ( props . minValue ) ) {
532+ o . val ( props . minValue ) ;
533+ o . trigger ( 'change' , e ) ;
534+ return ;
535+ }
536+ }
537+ if ( props . maxValue ) {
538+ if ( v > parseInt ( props . maxValue ) ) {
539+ o . val ( props . maxValue ) ;
513540 o . trigger ( 'change' , e ) ;
514541 }
515542 }
516543 } ) ;
544+ return s ;
517545 } ,
518546 createUIComponents : function ( p ) {
519547 var t ;
520- if ( p ) t = p . find ( 'input[dt =number]' ) ;
521- else t = $ ( 'input[dt =number]' ) ;
548+ if ( p ) t = p . find ( 'input[qwp =number]' ) ;
549+ else t = $ ( 'input[qwp =number]' ) ;
522550 t . each ( function ( i , o ) {
523551 o = $ ( o ) ;
524- var enter = o . attr ( 'dtEnter' ) ;
525- o . unbind ( 'blur' ) . unbind ( 'keypress' ) ;
526- if ( enter ) o . unbind ( 'keyup' ) ;
527- qwp . ui . input . number ( o , enter , o . attr ( 'dtValue' ) , o . attr ( 'dtMinValue' ) , o . attr ( 'dtRegExp' ) , enter , p ) ;
552+ var props = qwp . parseProps ( o . attr ( 'props' ) ) ;
553+ qwp . ui . input . number ( o , props , p ) ;
528554 } ) ;
529555 }
530556 } ,
@@ -584,11 +610,8 @@ $h = {};
584610 qwp . ui . _fns . push ( f ) ;
585611 } ,
586612 createUIComponents : function ( p ) {
587- var t ;
588- if ( p ) t = p . find ( '[data-rel=tooltip]' ) ;
589- else t = $ ( '[data-rel=tooltip]' ) ;
590613 qwp . ui . input . createUIComponents ( p ) ;
591- t . each ( function ( i , e ) {
614+ qwp . $ ( '[data-rel=tooltip]' , p ) . each ( function ( i , e ) {
592615 e = $ ( e ) ;
593616 if ( ! e . hasClass ( 'tooltip-info' ) ) e . addClass ( 'tooltip-info' ) ;
594617 e . tooltip ( ) ;
0 commit comments