我有一个验证html表单的函数,问题是显示警报div的2倍。这是为什么?。如果我更改延迟,问题也会发生变化,具体取决于哪个字段为空白。我的代码有什么错误?
提前致谢。
Javascript功能:
function mostrar(){
$(".ui-widget").show("drop", { direction: "up" }, "slow")
$(".ui-widget").delay(5000)
$(".ui-widget").hide( "drop", { direction: "down" }, "slow" );
}
function check()
{
if (!replace.NumeroDeGolpeReemplazo.value) {
mostrar();
return false;
}
else if (!replace.NumeroDeGolpeReemplazar.value){
mostrar();
return false;
}
else
return true;
}
HTML& PHP
<form name="replace" action="replace.php" onsubmit="return check();" method="post">
<table><tbody><h2>Motor a reemplazar</h2>
<tr><td>N° de Golpe del motor de reemplazo:</td><td><input type="text" name="NumeroDeGolpeReemplazo" id="NumeroDeGolpeReemplazo" /></td></tr>
<tr><td>N° de Golpe del motor a reemplazar:</td><td><input type="text" name="NumeroDeGolpeReemplazar" id="NumeroDeGolpeReemplazar" /></td></tr>
<tr><td>Ubicación:</td><td><select name="Ubicacion"><option value="">Seleccione lugar de reparación</option>
<?php
$tsql = "SELECT * FROM [Ubicacion]";
$stmt = sqlsrv_query($conn, $tsql);
$numFields = sqlsrv_num_fields( $stmt );
while( sqlsrv_fetch( $stmt )) {
for($i = 0; $i < $numFields; $i++) {
$paso = sqlsrv_get_field($stmt, $i);
if($paso==$datos[54]){
echo "<option value='".$paso. "' selected>".$paso."</option>" ;
}
else{
echo "<option value='".$paso. "'>".$paso."</option>" ;
}
}
}
@sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?></select></td></tr>
<tr><td></td><td><input value="Reemplazar" type="submit" name="replacebutton"/> </td> </tr>
</tbody></table></form><div class="ui-widget">
<div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
<p>
<span class="ui-icon ui-icon-alert"
style="float: left; margin-right: .3em;"></span>
<strong>Alerta:</strong> Debe incluir N° de Golpe Valido
</p>
</div>
</div>
答案 0 :(得分:0)
我很确定你的代码只是按顺序调用show和hide。 delay()调用仅影响链中的下一个。
请尝试这种方式:
function mostrar(){
$(".ui-widget").show("drop", { direction: "up" }, "slow")
.delay(5000)
.hide( "drop", { direction: "down" }, "slow" );
}