用 Web 组件构建的验证支持的窗体容器组件 .
安装
bun add @duskmoon-dev/el-form
使用量
自动注册
import '@duskmoon-dev/el-form/register';
<el-dm-form>
<el-dm-input name="email" label="Email" required></el-dm-input>
<el-dm-button type="submit">Submit</el-dm-button>
</el-dm-form>
手工登记
import { ElDmForm, register } from '@duskmoon-dev/el-form';
// Register with default tag name
register();
// Or register with custom tag name
customElements.define('my-form', ElDmForm);
属性
| 属性 | 类型 | 默认 | 说明 |
validation-state | string | - 说吧 | 窗体验证状态 |
disabled | boolean | false | 禁用所有窗体元素 |
CSS 组件
活动
| 活动 | 细节 | 说明 |
submit | { formData, values } | 在提交表上开火 |
reset | - 说吧 | 重置窗体时开火 |
实例
<el-dm-form>
<el-dm-input name="username" label="Username" required></el-dm-input>
<el-dm-input name="email" label="Email" type="email" required></el-dm-input>
<el-dm-button type="submit">Submit</el-dm-button>
</el-dm-form>
处理提交
const form = document.querySelector('el-dm-form');
form.addEventListener('submit', (e) => {
e.preventDefault();
const { formData, values } = e.detail;
console.log('Form values:', values);
});
<el-dm-form disabled>
<el-dm-input name="field" label="Field"></el-dm-input>
</el-dm-form>
有验证
<el-dm-form id="myForm">
<el-dm-input
name="email"
label="Email"
type="email"
required
validation-state="invalid"
error-message="Please enter a valid email"
></el-dm-input>
</el-dm-form>
许可证
麻省理工学院