写了个路由管理页面,点击添加路由弹出 modal,填写表单,并进行自动验证。
但是用<div slot="footer">
无法正确渲染按钮。
代码:
html片段:
<Modal v-model="addRouteModal" title="添加路由">
<Form ref="newRouteInModal" :model="newRouteInModal" :rules="routeValidate" label-position="left" :label-width="100">
<FormItem prop="target" label="IP地址">
<Input v-model="newRouteInModal.target" :autofocus="true"></Input>
</FormItem>
<FormItem prop="genmask" label="子网掩码">
<Input v-model="newRouteInModal.genmask"></Input>
</FormItem>
<FormItem prop="gateway" label="网关地址">
<Input v-model="newRouteInModal.gateway"></Input>
</FormItem>
<div slot="footer">
<FormItem>
<Button type="primary" @click="addRouteModalOnOk('newRouteInModal')">添加</Button>
<Button type="ghost" @click="handleReset('newRouteInModal')">取消</Button>
</FormItem>
</div>
</Form>
</Modal>
js片段:
handleReset(name) {
this.$refs[name].resetFields();
},
addRouteModalOnOk(name) {
this.$refs[name].validate((valid) => {
if (valid) {
this.$Message.success('Success!');
} else {
this.$Message.error('Fail!');
}
});
},
如果用modal原生按钮的话会丢失<FormItem>
属性,this.$refs[name].validate
就会失效。
有啥办法能在modal中使用form的表单验证功能吗?