如何在Brython中实现双输入触发双参数函数的输出展示?
解决Brython中多输入框实时联动处理的问题
你遇到的核心问题是误以为必须依赖bind回调的事件参数来获取输入值,但其实完全可以在处理函数里主动获取所有需要的输入框内容,不需要局限于事件对象的target。
修改后的代码如下:
<textarea id="input_one"></textarea> <textarea id="input_two"></textarea> <textarea id="output"></textarea> <script type="text/python"> import project from browser import document def handle_input(_): # 主动获取两个输入框的内容 input1_val = document['input_one'].value input2_val = document['input_two'].value # 调用外部函数处理,这里假设project.main接收两个参数 result = project.main(input1_val, input2_val) # 将结果输出到输出框 document['output'].text = result # 给两个输入框都绑定input事件 document['input_one'].bind('input', handle_input) document['input_two'].bind('input', handle_input) </script>
关键说明:
- 处理函数
handle_input里的_是占位符,用来接收bind自动传入的事件对象,我们不需要使用这个参数时可以这么写 - 直接通过
document['元素ID'].value获取两个输入框的当前值,摆脱单个事件参数的限制 - 将同一个处理函数绑定到两个输入框的
input事件上,不管哪个输入框内容变化,都会触发计算并更新输出
这样就能实现两个输入框内容变化时,实时调用外部函数处理并输出结果的需求了。
内容的提问来源于stack exchange,提问作者Atemigate
相关产品推荐
相关产品推荐

