brython | 获取input等标签的内容

简介: brython | 获取input等标签的内容

如果你是第一次看brython,建议先阅读前2篇文章


brython | 初始化项目: juejin.cn/post/715364…

brython | HTML 元素: juejin.cn/post/715402…


众所周知,现代web不仅能够浏览信息,还能上传一些信息,从而实现交互功能。比如我们熟知的,会员注册页面等。


通过上一篇的学习,我们初步掌握了使用brythondocument插入HTML标签的方法,其实还有很多标签我们还没有学习到,例如: tableinput等等。 本章我们主要学习如何获取input标签的内容。




brython中为按钮绑定方法


我们编写一个简单的demo来分析一下brython中的绑定方法,代码如下:

image.png

上述代码中,在body中新增了一个按钮button,其id为: test1_add_btn,按钮值为: “输出1+1=2”,在python中,我们使用browser.document[""]的形式,找到这个按钮元素,从而绑定一个点击事件,绑定的方法为test1_add


执行test1_add函数时候,我们就将在idtest1标签处追加1+1=2

具体代码执行可以查看【码上掘金】:测试1:在brython中为按钮绑定方法


code.juejin.cn/pen/7154281…



获取输入标签的内容


上述我们已经铺垫了如何在brython中为按钮绑定事件从而触犯绑定的方法,这节来看下,如何使用brython来获取inputtextarea等输入标签的内容。


获取textarea标签的内容

其中textarea较为简单,我们先看如何实现该方法

image.png


如上代码,我们在html中定义了一个textarea 和 一个button,并且将id命名为: test2_save_msg,且为该button注册了一个点击事件(如果你还不了解如何在brython为按钮添加绑定事件,可以参考上一节内容), 而后在该注册的方法中,我们将test2_save_msg的值取出,并且输出到屏幕上。


具体代码执行可以查看【码上掘金】:测试2:在brython中如何获取textarea的数据

code.juejin.cn/pen/7154281…



获取input标签的内容

简单的input标签和textarea标签使用方法类似,这里不再叙述,但是有2个不同的点,一个是单选,一个是复选。

image.png



由于单选和复选框,不能将id设置为同一个变量,所以,我们需要借助其name来获取其值,在brython中,获取响应名称的标签方法为: browser.document.getElementsByName(标签名),它会将name相匹配的数据整合为一个list返回,所以可以使用如下代码进行遍历:


for funItem in browser.document.getElementsByName("fun"):
    pass



在遍历过程中,判断是否已经选择该值,可以查看其下的checked值,已经选择为True,没有选择为False,所以代码可以编写为如下:

funs = []
for funItem in browser.document.getElementsByName("fun"):
    if True == funItem.checked:
        funs.append(funItem.value)


具体代码执行可以查看【码上掘金】:测试3:在brython获取Input数据

code.juejin.cn/pen/7154281…



使用brython做一个小demo


demo是使用上述方法的集合,具体代码已经放在【码上掘金】:测试5: 使用brython制作一个小demo

code.juejin.cn/pen/7154281…


单独贴一下python代码来分析下:

import browser
sex = ""
funs = []
def test5_saveMsg(event):
    global sex
    global funs
    names = browser.document["names"].value
    age = browser.document["age"].value
    passwd = browser.document["passwd"].value
    other = browser.document["other"].value
    for sexItem in browser.document.getElementsByName("sex"):
        if True == sexItem.checked:
            sex = sexItem.value
    for funItem in browser.document.getElementsByName("fun"):
        if True == funItem.checked:
            funs.append(funItem.value)
    browser.document["test5"] <= browser.html.P("姓名: "+names)
    browser.document["test5"] <= browser.html.P("性别: "+sex)
    browser.document["test5"] <= browser.html.P("年龄: "+age)
    browser.document["test5"] <= browser.html.P("密码: "+passwd)
    browser.document["test5"] <= browser.html.P("爱好: "+str(funs))
    browser.document["test5"] <= browser.html.P("备注: "+str(other))
browser.document["saveMsg"].bind("click",test5_saveMsg)



sexfuns我们明明在方法test5_saveMsg前已经定义过了,按照python来说,这是属于全局变量,为什么还需要在方法中,声明一次global呢? 这是由于brython的独特性决定的。当然,在上述代码中,不加也没问题的,但是为了避免后续出错,我们再使用全局变量的时候,一律加上。



总结


在上一篇中,我们学会了在brython中向document追加数据,来达到编写html目的的作用,在本篇中,我们学会了如何获取标签的内容。如果学过一些javascript基础来说,会感觉这个非常熟悉。因为它几乎将javascript那套给搬过来了。


哎呀,今天就这样吧,怎么样,好玩么? 快来动动你的小手试试吧。点击上述【码上掘金】的链接,选择Fork就可以随意修改了。



相关文章
|
JavaScript
JS 如何动态获取本地文件夹中的所有图片
JS 如何动态获取本地文件夹中的所有图片
1289 0
|
存储 NoSQL 分布式数据库
【Flink】Flink分布式快照的原理是什么?
【4月更文挑战第21天】【Flink】Flink分布式快照的原理是什么?
|
弹性计算 IDE 开发工具
|
关系型数据库 MySQL Java
wait_timeout【Mysql】解决方案
wait_timeout【Mysql】解决方案
1145 0
wait_timeout【Mysql】解决方案
|
机器学习/深度学习 新零售 算法
拍立淘-图像搜索与识别
云栖TechDay40期,阿里巴巴iDST视觉技术总监启磐来给大家分享图像搜索和识别。本文主要从iDST和拍立淘业务开始谈起,接着分析了拍立淘技术框架,着重分析了拍立淘核心技术,最后展示了呈现效果和云服务。
11444 0
|
7天前
|
人工智能 API 内存技术
刚刚 DeepSeek V4.1 Flash 开启内测,1 分钟教你用上!
刚刚 DeepSeek 内测群发布了 DeepSeek V4.1 Flash 中间版本内测的消息,这次的模型采用了新的结构,原生支持多模态、能力更强、速度更快、且成本更低。
1785 10
|
11天前
|
人工智能 运维 BI
阿里云千问办公QwenWork深度解析:基于Qwen3.8,六大核心能力重构企业全自动化工作流与计费选型指南
传统AI办公工具大多停留在对话问答、文档摘要、简单文案生成层面,只能完成单点碎片化任务,无法自主拆解复杂业务流程,很难串联多工具、多文档、外部业务系统完成端到端完整工作交付。很多企业在落地AI办公的时候,需要组合多款不同工具,来回切换界面,手动复制粘贴中间结果,智能化改造落地门槛居高不下。千问办公QwenWork是整合多款智能体产品能力打造的一体化企业办公智能体平台,底层基座依托Qwen3.8大模型,打通桌面端Agent、云端Agent、企业协同Agent三种运行形态,不再局限简单问答,接收业务目标之后自主拆解任务步骤,调用各类工具,处理文档、表格、浏览器自动化、数据查询,直接输出可交付的办公
1643 3
|
12天前
|
网络协议 Linux iOS开发
【2026实测】Wireshark下载+安装+汉化+使用教程(图文版,巨详细)
Wireshark 是一款免费开源的网络协议分析工具,可实时捕获、解析并可视化数据包,助你诊断网络故障、分析通信协议(如HTTP、DNS、TCP等)。支持Windows/macOS/Linux,含中文界面,新手入门便捷。(239字)
|
8天前
|
SQL 人工智能 前端开发
QoderWake 1.0 正式发布:从桌面里的 Agent,到工作现场的数字员工
QoderWake v1.0正式发布:企业级数字员工团队平台。支持“一句话建岗”,预置10类特训岗位;Waker常驻钉钉/飞书群,@即响应、自动协作、跨任务记忆;具备定时/事件/API多触发方式与统一任务看板;已沉淀27.6万条记忆、12.3万项技能,助力组织实现人机协同增效。
779 2
|
6天前
|
缓存 测试技术 API
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
DeepSeek V4.1 Flash 内测不用申请,base_url 不变、改个模型名就能调,9/10 到期。本文讲清接入、计费限流与多模态注意点。
803 0
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)

热门文章

最新文章