如何验证多选数组是否为空?(fallos [])继承我的代码:
<tr><td>Fallos reportados: </td><td><select name="fallos[]" size="6" multiple="multiple" >
<?php
$query = "SELECT falla_id,falla FROM falla order by falla";
$result = mysql_query($query);
if (!$result) die ("Database access failed: " . mysql_error());
while ($fila = mysql_fetch_array($result, MYSQL_ASSOC)){
echo "<option value=\"".$fila["falla_id"]."\">".$fila["falla"]."</option>";
}
?></td>
</tr>
这是我正在进行的验证但不起作用
function validate(form) {
fail = validateIMEI(form.IMEI.value)
fail += validateTelefono(form.numero_telefono.value)
fail += validateICCID(form.ICCID.value)
fail += validateFallos(form.fallos.value)
if (fail === "") return true
else { alert(fail); return false }
}
以下是验证fallos []的具体选项:
function validateFallos(field) {
if(field=== "") return "No se ha ingresado tipo de fallos"
//if (field==="") return "No se han ingresado los tipos de fallos.\n"
return ""
}
答案 0 :(得分:3)
validateFallos(form.fallos.value)
form
不包含fallos
。您有fallos[]
的名为form['fallos[]']
的精选元素,您可以form.elements['fallos[]']
或更喜欢form.fallos
访问该元素。如果你想坚持id="fallos"
,你应该在你的选择标签上添加{{1}}。
答案 1 :(得分:0)
你的代码行末尾缺少分号......
function validate(form) {
fail = validateIMEI(form.IMEI.value)
fail += validateTelefono(form.numero_telefono.value)
fail += validateICCID(form.ICCID.value)
fail += validateFallos(form.fallos.value)
if (fail === "") return true
else { alert(fail); return false }
}
应该是
function validate(form) {
fail = validateIMEI(form.IMEI.value);
fail += validateTelefono(form.numero_telefono.value);
fail += validateICCID(form.ICCID.value);
fail += validateFallos(form.fallos);
if (fail === "") return true;
else { alert(fail); return false; }
}
而且,多选输入将包含一个数组,因此您不能只检查它是否等于""
。相反,循环遍历数组并检查是否有任何选择,如下所示:
function validateFallos(fallosField) {
var empty = true;
for (i=0; i < fallosField.length; i++) {
if (fallosField[i].selected) {
return "";
}
}
return "No se ha ingresado tipo de fallos";
}
请注意我将fail += validateFallos(form.fallos.value)
更改为fail += validateFallos(form.fallos)
。