これはおそらく非常に単純なことですが、私の人生では、問題のようなものをリモートで見つけたり見つけたりすることはできません。私はJavascriptにかなり慣れていないので、HTMLフィールドで簡単なフォーム検証を行っています。当面の問題は次の2つです。
if(minSquare.search(intCheck) == -1 || minSquare < 500 || minSquare > 5000 || minSquare > maxSquare)
{
errorPrint.innerHTML += "Incorrect minimum square feet amount <br />";
errors++;
}
if(maxSquare.search(intCheck) == -1 || maxSquare > 5000 || maxSquare < 500)
{
errorPrint.innerHTML += "Incorrect maximum square feet amount <br />";
errors++;
}
minSquare/maxSquare は、HTML フィールドから取得した値です。ご覧のとおり、(不動産設定での) 平方フィートの値は 500 ~ 5000 の間であると想定され、整数でなければなりません。ロジックはありますが、フォームを送信するたびに、下限が 500 であるにもかかわらず、値が 1,000 未満の場合、誤った最小平方フィートのエラーが出力されます。これは、値が100,000 未満の場合、独自の下限が 30,000 であるにもかかわらず印刷されません。
どういうわけか、最小金額に 500 を入力し、最大金額 (適切な範囲) に 5000 を入力すると、問題なく送信されます。しかし、たとえば 501 と 5000 と入力すると、最小値に対してエラーがスローされます。なぜこれが起こっているのか分かりません。ブラウザの問題ではないと思います。Chrome と Firefox の両方で試してみましたが、同じ問題です。助けていただければ幸いです。問題がばかげているほど、これをすばやく閉じることができます =)
編集:問題を修正しました。それは簡単だと知っていました。以下のアドバイスに従って、入力を解析する必要があり、検索対象の変数が文字列の場合にのみ機能する RegExp 検索メソッドを削除する必要がありました。回答者に感謝します。