1

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

2 回答 2

3
validateFallos(form.fallos.value)

form不包含fallos。您有 select 元素,其名称fallos[]可以通过form['fallos[]']或更首选的方式访问form.elements['fallos[]']。如果你想坚持form.fallos你应该添加id="fallos"到你的选择标签。

于 2013-07-17T22:38:25.353 回答
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).

于 2013-07-17T22:29:43.183 回答