Skip to content

Commit 782fed1

Browse files
committed
fix #614: return invalid result when cancel input
1 parent 276d3d7 commit 782fed1

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

pywebio/io_ctrl.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ def input_event_handle(item_valid_funcs, form_valid_funcs, preprocess_funcs, onc
334334
:param onchange_funcs: map(name -> onchange_func)
335335
:return:
336336
"""
337-
data = None
337+
form_data = None
338338
while True:
339339
event = yield next_client_event()
340340
event_name, event_data = event['event'], event['data']
@@ -355,11 +355,11 @@ def input_event_handle(item_valid_funcs, form_valid_funcs, preprocess_funcs, onc
355355
if not check_item(name, event_data[name], valid_func, preprocess_funcs[name]):
356356
all_valid = False
357357

358-
if all_valid: # todo 减少preprocess_funcs[name]调用次数
359-
data = {name: preprocess_funcs[name](val) for name, val in event_data.items()}
358+
if all_valid: # todo: cache result of preprocess_funcs[name]
359+
form_data = {name: preprocess_funcs[name](val) for name, val in event_data.items()}
360360
# 调用表单验证函数进行校验
361361
if form_valid_funcs:
362-
v_res = form_valid_funcs(data)
362+
v_res = form_valid_funcs(form_data)
363363
if v_res is not None:
364364
all_valid = False
365365
try:
@@ -378,11 +378,12 @@ def input_event_handle(item_valid_funcs, form_valid_funcs, preprocess_funcs, onc
378378
if all_valid:
379379
break # form event loop
380380
elif event_name == 'from_cancel':
381+
form_data = None
381382
break # break event loop
382383
else:
383384
logger.warning("Unhandled Event: %s", event)
384385

385-
return data
386+
return form_data
386387

387388

388389
def output_register_callback(callback, **options):

0 commit comments

Comments
 (0)