iter(g40): 修表单双提交并支持 Enter 提交

This commit is contained in:
HIsheR
2026-10-26 11:51:41 +08:00
parent 78779d7bb6
commit d685f66527
8 changed files with 45 additions and 13 deletions
+5 -2
View File
@@ -1,6 +1,6 @@
# @ui-arch 组件库 Agent 文档(无图形版)
> 自动生成于 2026-10-26T03:49:26.217Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 自动生成于 2026-10-26T03:51:18.113Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 组件 = 普通函数,传 props 返回 DOM;状态用 signal 双向绑定:读 signal() 写 signal(v)。
## 快速上手
@@ -80,6 +80,7 @@ image({ src: '/a.png', alt: '架构图', width: 160 })
- label(必填):string —— 按钮文案
- variant(默认 primary):'primary' | 'ghost' | 'danger' —— 视觉强度;缺省 primary
- type:'button' | 'submit' | 'reset' —— 原生类型;缺省 button,表单内不会意外提交
- disabled:boolean | Signal<boolean> —— 禁用态:布尔直接置位,传信号则动态同步
- onClick(回调):() => void —— 点击回调
@@ -94,6 +95,7 @@ button({ label: '提交', variant: 'primary', onClick: () => console.log('clicke
1. 确定语义强度:主操作用 primary(默认),次要操作用 ghost,危险操作用 danger
2. 绑定 onClick 回调处理点击逻辑
3. 需要禁用态时自行在回调首行卫语句判断,或外层包条件渲染
4. 放进 <form> 里需要提交时显式传 type: "submit";缺省 button 不会触发原生提交
现场演示:apps/docs/demo.html#sec-counter
@@ -867,6 +869,7 @@ const name = signal(''); const f = form({ onSubmit: submit }, [formItem({ label:
6. 非必填字段为空时跳过其余规则;Enter 键触发表单原生 submit(已拦截走校验流程)
7. 错误态覆盖包裹式控件:标红作用于控件根与内部原生控件(含自绘 select 的触发器),并同步 aria-invalid,读屏与视觉一致
8. 触发时机用 input / change / focusout(均会冒泡),因此 checkbox / select / 单选组这类包裹式控件同样能失焦校验
9. 单行输入框内按 Enter 等同点击提交(textarea 内仍是换行);提交按钮为 type="submit",不会与点击回调重复触发
现场演示:apps/docs/demo.html#sec-formlab
@@ -1170,7 +1173,7 @@ result({ status: 'success', title: '提交成功', description: '工单 #2049
API 速览:
- button(props):按钮,variant = primary | ghost | danger,disabled 支持布尔或信号禁用
- button(props):按钮,variant = primary | ghost | danger,disabled 支持布尔或信号禁用;type 缺省 button(表单内不隐式提交)
- textField(props):文本输入,value 信号双向绑定,disabled 支持布尔或信号,onInput 输入回调;prefix/suffix 可选渲染为输入框内侧附加块,clearable 开启后有值即显一键清空按钮
- inputNumber(props):数字输入,−/+ 按钮与键盘 ↑↓ 调节(长按连发步进),min/max/step 夹取;prefix/suffix 可选渲染为整组前后附加块
- textarea(props):多行输入,value 信号双向绑定,disabled 支持布尔或信号,rows 控行数;prefix/suffix 可选渲染为上下附加块,maxCount 显示实时字数并设原生上限