关于formData的坑

FormData上传图片问题
探讨使用FormData上传图片的方法及其局限性,特别是在不同操作系统和浏览器环境下的表现差异。

用:

var fd = new FormData();

fd.append('id', 10);

fd.append('file', document.getElementById('file').files[0]);

的方式上传图片非常方便,可是fd还有一个get方法,这个方法在mac os中的chrome我测试通过了的可以获取到append追加进去的值,但在windows的chrome浏览器中却不行,见下图:



 

在uni-app表单校验过程中,常见问题和主要有以下方面: ### 表单校验规则不生效 在使用uni-ui组件进行表单校验时,若规则不生效,可能是因为`uni-forms-item`的`name`属性和表单`v-model`的属性值未保持一致。例如代码`<uni-forms ref="drawerform" label-width="80" :rules="rules" class="drawer-form" :model="drawerData">`,需要确保`uni-forms-item`的`name`和`drawerData`里的属性对应,否则无法正确应用校验规则。如规则`rules`里定义了`name`的校验规则,但`uni-forms-item`的`name`属性与`drawerData`中对应属性名不匹配,校验规则就不会生效 [^1]。 ### 初始值类型影响校验结果 在实现动态增减的单价输入表单(基于uv-form组件)时,若`<uv-input>`的`v-model`绑定初始值为数字类型,`required`规则会失效,且数字类型与字符串类型校验表现不一致。这可能会导致在初始值为数字时,即使字段为空也不会触发`required`校验 [^2]。 ### 校验规则定义错误 在校验规则定义时,可能会出现规则语法错误、属性名错误等问题。如在定义规则时,规则的属性名写错或者规则的格式不符合要求,都会使校验无法正常进行。例如在定义`rules`时,规则的`required`、`minLength`等属性使用错误,就不能达到预期的校验效果 [^1]。 ### 动态生成规则问题 若采用计算属性动态生成规则,可能会因为计算属性的依赖或者计算逻辑错误,导致生成的规则不符合预期,进而影响表单校验 [^2]。 ```vue <template> <uni-forms ref="formRef" :rules="rules" :model="formData"> <uni-forms-item name="name"> <uni-input v-model="formData.name"></uni-input> </uni-forms-item> </uni-forms> </template> <script setup> import { ref } from 'vue'; const formRef = ref(null); const formData = ref({ name: '' }); const rules = ref({ name: { rules: [ { required: true, errorMessage: '请输入名称', trigger: ['blur', 'change'] }, { minLength: 2, errorMessage: '名称至少两个字符' } ], label: '名称' } }); </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值