抱歉,如果我的标题令人困惑,我不知道如何准确描述我正在使用的数组。我正在使用简单的 ajax,以便用户可以选择案例中提供者的数量。然后填充正确数量的下拉框。基本上下拉菜单是用这个 php/html 代码创建的,其中 q 是用户选择的提供者的数量:
for ($i=1; $i<=(intval($q)); $i++)
{
echo "Name of Anesthesia Provider " . $i . ": ";
echo "<select name=\"anesthesiaprovider[]\">";
$result = mysqli_query($con,"SELECT * FROM Anesthesia_Provider ORDER BY Lname");
if (!(mysqli_query($con, $sql))) {
echo "<br>";
echo 'Error in inserting data: ' . mysqli_error($con);
}
echo "<option name=\"anesthesiaprovider[]\" value=\"selectprovider\">Anesthesia Provider " . $i . "</option>";
while($row = mysqli_fetch_array($result))
{
echo "<option name=\"reviewer\" value=\"" . $row['Anesthesia_Provider_Number'] . "\">" . $row['Lname'] . ", " . $row['Fname'] . "</option>";
}
echo "</select>";
echo "<br>";
echo "<br>";
}
我想使用 javascript 来确保为每个框选择了一个提供程序。如果未选择一个,则以黄色突出显示。这是我的 javascript 代码,它验证表单提交:
function validateQualityReport(theForm)
{
var reason = "";
reason += validateCase(theForm.case);
reason += validateAnesthesiologists(theForm.element['anesthesiaprovider[]'])
if (reason != "") {
alert("Some fields need correction:\n" + reason);
return false;
}
alert("All fields are filled correctly");
return false;
}
function validateAnesthesiologists(fld){
var error = "";
alert(fld.length);
for (var i = 0; i < fld.length; i++) {
if (fld[i].value =="selectprovider"){
fld[i].style.background = 'Yellow';
error += "Make a selection for provider " + (i+1).toString() + "\n";
}else{
fld[i].style.background = 'White';
}
}
return error;
}
该代码适用于除选择一个提供商之外的所有内容。然后它说 fld.length 是 56(所以下拉框中的所有内容),当它突出显示时,它不会突出显示整个下拉列表,它只突出显示第一个。这里发生了什么?我在这里先向您的帮助表示感谢。