我正在使用react-hook-form
.我有密码textarea
用户可以在其中输入pincodes
,现在我想验证我的值blur
平均密码应该是6
位并以排序顺序显示。
onblur
事件无法正常工作? 这是我的代码 https://codesandbox.io/s/react-hook-form-get-started-v24jk
<TextField
inputRef={register}
label={"pincode"}
variant="outlined"
placeholder={"dd"}
multiline={true}
rows="4"
rowsMax="12"
name={"pincode"}
onBlur={v => {
console.log(v);
function onlyUnique(value, index, self) {
return self.indexOf(value) === index && value.trim().length === 6;
}
if (v) {
let codes = v.split(",");
let newCodes = codes.filter(onlyUnique);
return newCodes.sort().join(",");
}
return "";
}}
/>
反应钩子表单 API https://react-hook-form.com/api
onBlur={v => {...}
v
变量表示 onBlur 事件的事件对象。您可以从v.target.value
的textarea
中获取值。v.target.value.split(",")
应该可以工作,但如果只输入了一个 PIN,则最终可能会在数组中出现空字符串。