如何在javascript中验证多选数组是否为空?

时间:2013-07-17 22:21:30

标签: javascript html

如何验证多选数组是否为空?(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 ""
}

2 个答案:

答案 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)