11/**
2- * vue-validator v1.4.1
2+ * vue-validator v1.4.2
33 * (c) 2014-2015 kazuya kawaguchi
44 * Released under the MIT License.
55 */
@@ -84,6 +84,7 @@ return /******/ (function(modules) { // webpackBootstrap
8484 var componentName = options . component = options . component || '$validator'
8585 var directiveName = options . directive = options . directive || 'validate'
8686 var path = Vue . parsers . path
87+ var util = Vue . util
8788
8889 function getVal ( obj , keypath ) {
8990 var ret = null
@@ -119,35 +120,40 @@ return /******/ (function(modules) { // webpackBootstrap
119120 } , Vue . extend ( __webpack_require__ ( 3 ) ) )
120121 }
121122
123+ var value = el . getAttribute ( 'value' )
124+ if ( el . getAttribute ( 'number' ) !== null ) {
125+ value = util . toNumber ( value )
126+ }
127+ this . _init = value
128+
122129 var validation = $validator . _getValidationNamespace ( 'validation' )
123- var init = el . getAttribute ( ' value' ) || vm . $get ( keypath )
130+ var init = value || vm . $get ( keypath )
124131 var readyEvent = el . getAttribute ( 'wait-for' )
125132
126133 if ( readyEvent && ! $validator . _isRegistedReadyEvent ( keypath ) ) {
127134 $validator . _addReadyEvents ( keypath , this . _checkParam ( 'wait-for' ) )
128135 }
129136
130- this . _setupValidator ( $validator , keypath , validation , validator , arg , init )
137+ this . _setupValidator ( $validator , keypath , validation , validator , el , arg , init )
131138 } ,
132139
133140 update : function ( val , old ) {
134141 if ( this . _ignore ) { return }
135142
143+ var self = this
136144 var vm = this . vm
137145 var keypath = this . _keypath
138146 var validator = this . arg ? this . arg : this . expression
139147 var $validator = vm [ componentName ]
140148
141149 $validator . _changeValidator ( keypath , validator , val )
142150 if ( ! $validator . _isRegistedReadyEvent ( keypath ) ) { // normal
143- $validator . _updateDirtyProperty ( keypath , $validator . $get ( keypath ) )
144- $validator . _doValidate ( keypath , validator , $validator . $get ( keypath ) )
151+ this . _updateValidator ( $validator , validator , keypath )
145152 } else { // wait-for
146153 vm . $once ( $validator . _getReadyEvents ( keypath ) , function ( val ) {
147154 $validator . _setInitialValue ( keypath , val )
148155 vm . $set ( keypath , val )
149- $validator . _updateDirtyProperty ( keypath , $validator . $get ( keypath ) )
150- $validator . _doValidate ( keypath , validator , $validator . $get ( keypath ) )
156+ self . _updateValidator ( $validator , validator , keypath )
151157 } )
152158 }
153159 } ,
@@ -176,12 +182,18 @@ return /******/ (function(modules) { // webpackBootstrap
176182 } )
177183 } ,
178184
179- _setupValidator : function ( $validator , keypath , validation , validator , arg , init ) {
185+ _setupValidator : function ( $validator , keypath , validation , validator , el , arg , init ) {
180186 var vm = this . vm
181187
182188 if ( ! getVal ( $validator [ validation ] , keypath ) ) {
183189 $validator . _defineModelValidationScope ( keypath )
184- $validator . _setInitialValue ( keypath , init )
190+ if ( el . tagName === 'INPUT' && el . type === 'radio' ) {
191+ if ( getVal ( vm , keypath ) === init ) {
192+ $validator . _setInitialValue ( keypath , init )
193+ }
194+ } else {
195+ $validator . _setInitialValue ( keypath , init )
196+ }
185197 }
186198
187199 if ( ! getVal ( $validator [ validation ] , [ keypath , validator ] . join ( '.' ) ) ) {
@@ -190,6 +202,26 @@ return /******/ (function(modules) { // webpackBootstrap
190202 }
191203 } ,
192204
205+ _updateValidator : function ( $validator , validator , keypath ) {
206+ var value = $validator . $get ( keypath )
207+ var el = this . el
208+
209+ if ( this . _init ) {
210+ value = this . _init
211+ delete this . _init
212+ }
213+
214+ if ( el . tagName === 'INPUT' && el . type === 'radio' ) {
215+ if ( value === $validator . $get ( keypath ) ) {
216+ $validator . _updateDirtyProperty ( keypath , value )
217+ }
218+ } else {
219+ $validator . _updateDirtyProperty ( keypath , value )
220+ }
221+
222+ $validator . _doValidate ( keypath , validator , $validator . $get ( keypath ) )
223+ } ,
224+
193225 _teardownValidator : function ( vm , $validator , keypath , validator ) {
194226 $validator . _undefineValidatorToValidationScope ( keypath , validator )
195227 $validator . _undefineModelValidationScope ( keypath , validator )
0 commit comments