@@ -280,7 +280,7 @@ def input_control(spec, preprocess_funcs, item_valid_funcs, onchange_funcs, form
280
280
return data
281
281
282
282
283
- def check_item (name , data , valid_func , preprocess_func ):
283
+ def check_item (name , data , valid_func , preprocess_func , clear_invalid = False ):
284
284
try :
285
285
data = preprocess_func (data )
286
286
error_msg = valid_func (data )
@@ -295,7 +295,7 @@ def check_item(name, data, valid_func, preprocess_func):
295
295
'invalid_feedback' : error_msg
296
296
}))
297
297
return False
298
- else :
298
+ elif clear_invalid :
299
299
send_msg ('update_input' , dict (target_name = name , attributes = {
300
300
'valid_status' : 0 , # valid_status为0表示清空valid_status标志
301
301
}))
@@ -334,6 +334,7 @@ def input_event_handle(item_valid_funcs, form_valid_funcs, preprocess_funcs, onc
334
334
:param onchange_funcs: map(name -> onchange_func)
335
335
:return:
336
336
"""
337
+ data = None
337
338
while True :
338
339
event = yield next_client_event ()
339
340
event_name , event_data = event ['event' ], event ['data' ]
@@ -342,7 +343,7 @@ def input_event_handle(item_valid_funcs, form_valid_funcs, preprocess_funcs, onc
342
343
if input_event == 'blur' :
343
344
onblur_name = event_data ['name' ]
344
345
check_item (onblur_name , event_data ['value' ], item_valid_funcs [onblur_name ],
345
- preprocess_funcs [onblur_name ])
346
+ preprocess_funcs [onblur_name ], clear_invalid = True )
346
347
elif input_event == 'change' :
347
348
trigger_onchange (event_data , onchange_funcs )
348
349
@@ -375,10 +376,9 @@ def input_event_handle(item_valid_funcs, form_valid_funcs, preprocess_funcs, onc
375
376
}))
376
377
377
378
if all_valid :
378
- break
379
+ break # form event loop
379
380
elif event_name == 'from_cancel' :
380
- data = None
381
- break
381
+ break # break event loop
382
382
else :
383
383
logger .warning ("Unhandled Event: %s" , event )
384
384
0 commit comments