Skip to content

输入法、表单约束与提交:练习答案 ​

答案用于核对输入契约、运行日志、失败分类和替代方案;不要把答案实现当作正文的前置。

composition 与 input 时序 ​

可核对实现:组合开始时设置 composing = true,input 事件只记录值;组合结束时先设为 false,再调用一次 commit(input.value)。普通输入、粘贴和语音输入没有组合事件时,input 可以直接提交。

预期结果:中文输入“北京”期间不发送搜索请求,compositionend 后只发送一次;退格和粘贴仍能更新值。离开页面时用 AbortController 取消尚未完成的请求。

Constraint Validation API ​

先运行正文例子,再改变一个输入或时序。成功路径要达到预期状态;失败路径要保留错误类型;取消/卸载路径要证明资源不再写入;降级路径要说明能力检测与替代行为。

formdata、submit 与 FormData ​

先运行正文例子,再改变一个输入或时序。成功路径要达到预期状态;失败路径要保留错误类型;取消/卸载路径要证明资源不再写入;降级路径要说明能力检测与替代行为。

beforeinput 与可编辑区域 ​

先运行正文例子,再改变一个输入或时序。成功路径要达到预期状态;失败路径要保留错误类型;取消/卸载路径要证明资源不再写入;降级路径要说明能力检测与替代行为。

用心记录每一步成长