reactjs - 如何在 Framework7 中验证提交时的表单
问题描述
假设用户在将值输入某些字段之前单击提交。如何在提交完成之前触发所有输入的验证?
通常,HTML5 验证足够聪明,可以在单击按钮时触发验证,但这似乎不会发生在 Framework 7 表单中。这是一个简单的例子。
<List form>
<ListInput type="email" validate errorMessage="Please enter a valid email" />
<ListInput type="password" validate errorMessage="Please enter a value" required />
<Button>Submit</Button>
</List>
我尝试使用 refs 来触发模糊,但我不确定如何获取 ListInput 创建的输入元素。
解决方案
1. HTML5 验证
要获得正确的 HTML5 验证,您需要submit
在表单上有 html 类型的按钮。
因此,在您的示例中,您必须将 type prop 添加到 framework7 的Button
组件中:
<Button type="submit">Submit</Button>
2. 捕获提交事件并解析表单
要在表单上捕获提交事件,请将onSubmit
prop 添加到 framework7 的List
组件中。
Framework7 还有一个表单解析辅助方法app.form.converToData
。要使用它,您还必须向组件添加name
道具ListInput
。
把它们放在一起看起来像这样:
<List form onSubmit={(e)=>this.onLoginForm(e)}>
<ListInput placeholder="Email" type="email" name="email" validate errorMessage="Please enter a valid email" />
<ListInput placeholder="Password" type="password" name="password" validate errorMessage="Please enter a value" required />
<Button type="submit">Submit</Button>
</List>
检查此小提琴中的工作示例:https ://jsfiddle.net/alimamed/orzep1x8/
推荐阅读
- android - 如何使用 Dagger 2 向 MyFirebaseMessagingService 提供数据库,以便我可以在 android 本地存储 fcm 消息
- javascript - 使用纱线工作区将 ui 库与汇总捆绑时导入未定义
- deep-learning - 对图像中特定对象进行硬负挖掘以进行 SSD 训练
- laravel - 将 laravel 项目托管到实时服务器后,只有索引 URL 有效
- java - 如何通过selenium Webdriver根据excel中给出的ID单击删除图标
- python-3.x - 从熊猫数据框中选择行时出错
- cakephp - CakePHP3:flash 不能处理日文字符
- mysql - 将 Codeigniter 输入日期作为 mysql 日期格式传递
- java - 从 html 访问 WEB-INF/jsp
- html - 如何从谷歌索引中隐藏部分页面?