微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

试图不触发对禁用字段的验证

如何解决试图不触发对禁用字段的验证

我正在使用 react 最终表单验证来验证表单。有一个要求,我需要禁用基于另一个字段(复选框)的某些字段的验证,但我在提交表单时没有这样做。显示验证错误。 下面是我进行表单验证的代码

int value = default; // = 0
DateTime dateTime = default; // = 1/1/0001 12:00:00 AM
Guid id = default; // = 00000000-0000-0000-0000-000000000000

然后这是 render={({ handleSubmit,form,submitting,pristine,values }) => { const formFields = fieldDefs.map( ({ name,title,drawer: { component: Component,validate,isFieldWrapperComponent,fieldInstructionNote,options,renderOption,checkIsdisabled,checkIsHidden,...props } }) => { const { isdisabled,updateValues } = checkIsdisabled?.(values) ?? {}; if (updateValues?.length) { updateValues.forEach((params) => form.mutators.setValueMutator(...params)); } return ( <Row key={name} gutter={8} style={{ paddingBottom: '8px' }}> {( <> <Col span={6}> <Text strong>{title}</Text>{' '} {validate && <span style={{ color: 'red' }}>*</span>} </Col> <Col span={2} /> <Col span={16}> <Field name={`draftLibraryData.${name}`} component={Component} validate={isValidate(isdisabled,validate)} options={options} render={renderOption} disabled={isdisabled} {...props} /> </Col> </> )} </Row> ); } ); return ( <Drawer title={state.drawerTitle} placement="right" closable={submitting || pristine} maskClosable={submitting || pristine} visible={state.isDrawerVisible} width={897} > <form onSubmit={handleSubmit}> <p> <span style={{ color: 'red' }}> * Indicates a required field </span> </p> {formFields} <SectionActionBar handlediscard={() => resetValidationState(form,values,fieldDefs)} isModified={!(submitting || pristine) || istempDataModified(values)} isFloatingalert={false} form={form} /> <FormState height="300px" overflowY="auto" border="1px solid black" /> </form> </Drawer> ); )}

函数
isValidate.

当我提交表单时,我遇到了一个问题;为 export const isValidate = (isdisabled,validate) => { return isdisabled ? undefined : validate; }; 为 true 的字段触发验证。任何人都可以指出我正确的方向吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。