React Hook form與yup驗證:有效的表單驗證方法
P粉486743671
P粉486743671 2023-08-28 10:04:56
0
1
405
<p>我為我的React JS電子商務網站創建了一個立即購買組件。我面臨的問題是表單的驗證沒有完成。我使用了一個解析器,但它仍然沒有驗證我的表單。這是我的程式碼:</p> <pre class="brush:php;toolbar:false;">從 'react' 匯入 React, { useEffect, useState } 導入“./e.css” 從“react-hook-form”導入{useForm}; 從“@hookform/resolvers/yup”導入{ yupResolver } import * as yup from “yup”; 導出預設函數 BuyNow(props) { const [國家/地區,設定國家/地區] = useState([]) useEffect(() => { const getcountry = async () =>; { const res = wait fetch(“http://localhost:3000/setpk.json”) const getcon = 等待 res.json() 設定國家/地區(等待 getcon) } 獲取國家() }, []) const schema = yup.object({ 全名: yup.string().required(), 電子郵件: yup.string().email().required(), 地址:yup.string().required(), 電話號碼: yup.number().required().integer().min(11), 城市: yup.string().required(), 付款方式: yup.string().required() }) const { 註冊、handleSubmit、監視、formState: { 錯誤 } } = useForm({ 解析器: yupResolver(schema) }); const onSubmit = (數據) => { 控制台.日誌(資料) } 返回 ( <>

立即購買

; <表單onSubmit={handleSubmit(onSubmit)}>
<輸入名稱=“名稱”; id=“姓名” placeholder='名' {...register("全名") } //> <輸入姓名=“電子郵件” id="電子郵件" placeholder='電子郵件' className=“text-indigo-400” {...註冊(“電子郵件”) } //> <輸入名稱=“地址”; id=“地址”; placeholder='發貨地址' {...register("地址") } //> <輸入類型=“數字”姓名=“電話” id=“” placeholder='電話號碼' {...register("phoneno") } //> <選擇名稱=“sa”; id="as"; {...註冊(「城市」) }> <選項已停用>--城市名稱-- { 國.地圖((countryget, i) => ( <選項鍵={i}>{countryget.city}</選項> )) } </選擇>
<選擇名稱=“” id=“” className='付款基礎-滿w-[70%] ' {...register("付款") }> <已停用選項> -- 付款方式-- </option> <選項>信用卡</選項> <選項>貨到付款 <選項>銀行轉帳 </選擇>
{/* <按鈕類型=“提交” className='bg-indigo-600 p-2 rounded-lg font-mono Absolute '>繼續 ➔; */}
<輸入類型=“提交” className='bg-rose-600 p-2 rounded-lg font-mono text-white mt-3' //> </表格>
<div className="pricesection h-20 bg-rose-600 固定 Bottom-0 left-0 right-0 flex items-center px-1 text-rose-100 justify-evenly md:justify-around">

總價

${props.totalprice}

;
</> ) }</pre> <p>我希望表單是不受控制的。我編寫了模式並使用了解析器。</p>
P粉486743671
P粉486743671

全部回覆(1)
P粉022723606

我透過將yup.integer()替換為yup.string()來解決了這個問題

phoneno: yup.number().required().integer().min(11),

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!