7474 < li > 爱好:可选,如果选择最少选择两项</ li >
7575 < li > 携带人员:必须选爸,不能同时选哥和弟,也不能同时选姐和妹</ li >
7676 < li > 喜欢的姓名:可选,不能输入 张三</ li >
77+ < li > 性别:选择男性必须输入你的姓名</ li >
7778 </ ul >
7879 </ div >
7980
120121 < input type ="text " name ="userName " />
121122 </ div >
122123 < p class ="error-box " id ="userName "> </ p >
124+
125+ < div class ="control-box ">
126+ < label class ="lbl "> 性别:</ label >
127+ < label > < input name ="gender " type ="radio " value ="1 " /> 男</ label >
128+ < label > < input name ="gender " type ="radio " value ="0 " /> 女</ label >
129+ </ div >
130+ < p class ="error-box " id ="gender "> </ p >
131+ < div class ="control-box ">
132+ < label class ="lbl "> 你的的姓名:</ label >
133+ < input type ="text " name ="yourName " />
134+ </ div >
135+ < p class ="error-box " id ="yourName "> </ p >
123136
124137 < button id ="submitButton " type ="button "> 提交</ button >
125138 </ form >
132145 /**
133146 * 注意:此demo比较简单,请结合实际项目修改
134147 */
135- var submitForm = document . getElementById ( 'submitForm' ) ;
136- var submitButton = document . getElementById ( 'submitButton' ) ;
137148
138149 // 必须以字母 a 开头
139150 WeValidator . addRule ( 'startA' , {
151162 var validatorInstance = new WeValidator ( {
152163 multiCheck : true ,
153164 onMessage : function ( data ) {
165+ console . log ( 'onMessage' ) ;
154166 console . log ( data ) ;
155167
156168 for ( var name in data ) {
157- let ele = document . getElementById ( name )
158-
159- if ( ele ) {
160- ele . innerHTML = data [ name ] . msg
161- }
169+ $ ( '#' + name ) . html ( data [ name ] . msg )
162170 }
163171 } ,
164172 rules : {
210218 }
211219 } ) ;
212220
213- submitButton . onclick = function ( ) {
214- var data = $ ( submitForm ) . serializeObject ( ) ;
221+ // 提交
222+ $ ( '#submitButton' ) . on ( 'click' , function ( ) {
223+ var data = $ ( '#submitForm' ) . serializeObject ( ) ;
215224
216- console . log ( data )
217- clearError ( )
218- if ( ! validatorInstance . checkData ( data ) ) return ;
225+ console . log ( data )
219226
220- console . log ( '开始提交' ) ;
221-
222- return false
223- }
227+ $ ( '.error-box' ) . html ( '' )
224228
225- function clearError ( ) {
226- var eles = document . querySelectorAll ( '.error-box' )
229+ if ( ! validatorInstance . checkData ( data ) ) return ;
230+
231+ console . log ( '开始提交' ) ;
232+ } )
227233
228- eles = [ ] . slice . call ( eles )
229234
230- for ( var i = 0 ; i < eles . length ; i ++ ) {
231- eles [ i ] . innerHTML = ''
235+ // 动态添加字段校验
236+ // 选择男性必须输入你的姓名
237+ $ ( '[name=gender]' ) . on ( 'change' , function ( ev ) {
238+ var val = $ ( this ) . val ( )
239+
240+ // 选择男性
241+ if ( val == '1' ) {
242+ validatorInstance . addRules ( {
243+ rules : {
244+ yourName : {
245+ required : true
246+ }
247+ } ,
248+ messages : {
249+ yourName : {
250+ required : '选择男性,必须输入你的姓名'
251+ }
252+ }
253+ } )
254+ } else {
255+ // 选择女性
256+ validatorInstance . removeRules ( [ 'yourName' ] )
232257 }
233- }
258+ } )
234259 </ script >
235260</ body >
236261</ html >
0 commit comments