我在javascript based on this doc上编写了简单的自定义验证。如果在“Si”上选择了选择并且文本字段留空,我希望它显示警报。我不明白为什么它没有显示消息。
<html>
<head>
<link rel="stylesheet" type="text/css" media="screen" href="mistylesheet.css"/>
<script type ='text/javascript'>
function mivalidate (elem1, elem2, elem3, elem4) {
if(elem1.value=="Si")&&(elem2.value.length==0)&&( (elem3.value.length==0)||(elem4.value.length==0)){
alert("Por favor, especifique un nombre y un email o teléfono de contacto en su recomendación ");
elem1.focus();
return false;
} else {
return true;
}
}
</script>
</head>
<body>
<form onsubmit='return mivalidate(document.getElementById("recomiendaONo"),document.getElementById("nombreRecomendado"), document.getElementById("emailRecomendado"),
document.getElementById("telefonoRecomendado"))'>
<table class="layouttable">
<tr class='row1'><td> <b>¿Recomendaría nuestros servicios a otra empresa o persona? </b></td></tr>
<tr class='row2'><td>
<select id = "recomiendaONo" name="recomiendaONo" class="required">
<option value="">Seleccione su respuesta</option>
<option value="Si">Sí</option>
<option value="No">No</option>
</select>
</td></tr>
</table>
<div class='margenrecomendaciones'>
<table>
<tbody>
<tr>
<td><div align="left">Nombre:</div></td>
<td><div align="left"><input class="texto" id="nombreRecomendado" name="nombreRecomendado" type="text" size="30"/></div></td>
</tr>
<td><div align="left">Email:</div></td>
<td><div align="left"> <input class="texto" id="emailRecomendado" name="emailRecomendado" type="text" size="30"/></div></td>
</tr>
<tr>
<td><div align="left">Teléfono:</div></td>
<td><div align="left"> <input class=" texto" name="telefonoRecomendado" id="telefonoRecomendado" type="text" size="30"/></div></td>
</tr>
</tbody>
</table>
</div>
<input type="submit"/>
</form>
</body>
</html>
答案 0 :(得分:0)
您需要将整个if
条件括在大括号中:
if (...) {
alert(...);
}
我总是建议在这种情况下使用firebug或类似工具:它会以非常清晰的方式向您显示所有javascript错误。
答案 1 :(得分:0)
您需要将整个if
语句包装在括号中。
此:
if (elem1.value == "Si") && (elem2.value.length == 0) && ((elem3.value.length == 0) || (elem4.value.length == 0))
应该是:
if ((elem1.value == "Si") && (elem2.value.length == 0) && ((elem3.value.length == 0) || elem4.value.length == 0)))
(我还在运算符周围添加空格,在if
之后添加空格以使所有内容更清晰可读,您也应该这样做。此外,使用文本编辑器或IDE显示匹配的括号确实有助于跟踪它们。)