関数は false を返す必要があるにもかかわらず true を返します
P粉514458863
P粉514458863 2023-08-16 19:57:43
0
1
514
<p>NextJS を使用してクライアント側のフォームを作成しています。フォームのクライアント側に検証を配置して別の関数に配置しようとしていますが、 validateForm() 関数を実行するたびに、入力に関係なく true が返されます。ここで何か愚かなことを見逃しているような気がしますが、頭を悩ませていますが、どこにも行きません。コードは次のとおりです: </p> <pre class="brush:php;toolbar:false;">const [jobSubmission, setJobSubmission] = useState({}); 関数 handleChange (e){ const jobInputName = e.target.name; const jobInputValue = e.target.value; const newJobSubmission = { ...ジョブ送信、 [ジョブ入力名]: ジョブ入力値、 } console.log(新しいジョブ送信) setJobSubmission(newJobSubmission) } 関数 validateForm(){ console.log("検証実行中") if(jobSubmission.jobCategory == `選択してください` || jobSubmission.jobCategory === null){ alert("職種を選択してください") falseを返す } if (jobSubmission.salarRange !== null && jobSubmission.timeOfPayment === null){ alert("給与支払いの頻度を選択するか、給与範囲を削除してください"); falseを返す } trueを返す } 関数 handleSubmission(){ const isReady = validateForm() console.log(isReady) if (isReady === true){ // UniqIdを追加します const FinalJobObject = { ...ジョブ送信、 ジョブID: uniqid() } sendJobToDB(最終ジョブオブジェクト) window.location = "/仕事の投稿/ありがとう" } それ以外{ alert("必須フィールドをすべて入力してください") } }</pre> <p>基本的に、検証チェックを別の検証関数に入れて、何か問題が発生した場合に実際に false を返したいと考えています。 </p> <p>ブール値の追跡方法を変更しようとしましたが、常に true が返されます。 </p>
P粉514458863
P粉514458863

全員に返信(1)
P粉682987577

は、===== を組み合わせて使用​​すると発生する可能性があります。最初に次のコードを試してみることをお勧めします:

リーリー

問題が解決しない場合は、コンソール ログ内の jobSubmission オブジェクトをチェックし、チェックしている値が期待どおりであることを確認することをお勧めします。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート