次のスクリプトは、ユーザーがドロップダウン ボックスで行った選択に応じて、特定の入力フィールドのみを検証する必要があります (var 問題)。
私が抱えている問題は、 if ステートメントが問題 == 4 (以下) に対して実行され、ユーザーが対応する cityid フィールドに入力した場合、次の if ステートメント (問題 == 5) のアラート (Alert#3) が発生することです。引き金になった。ユーザーがドロップダウンから問題== 5を選択し、モデルフィールドに入力していない場合にのみ、アラート#3をトリガーしたい。
問題 == 5 に対して if 文を実行すると、それぞれ同じ問題が発生します。
function ValidateSOR()
{
var user = document.SOR.User;
var problem= document.SOR.Problem;
var cityid = document.SOR.CityID;
var errors1 = document.SOR.ErrorCodes1;
var model = document.SOR.Model;
var errors2 = document.SOR.ErrorCodes2;
var software = document.SOR.SoftwareType;
if (user.value == "")
{
window.alert("Please enter your name.");
user.focus();
return false;
}
if (problem.selectedIndex < 1)
{
alert("Alert#1");
problem.focus();
return false;
}
if (problem.selectedIndex == 4)
{
cityid.focus();
}
else if (cityid.value == "")
{
alert("Alert#2");
cityid.focus();
return false;
}
if (problem.selectedIndex == 5)
{
model.focus();
}
else if (model.value == "")
{
alert("Alert#3");
model.focus();
return false;
}
if (problem.selectedIndex == 6)
{
software.focus();
}
else if (software.value == "")
{
alert("Alert#4");
software.focus();
return false;
}
return true;
}