我不知道为什么,但是用这段代码:
$(document).ready(function(){
$("#errorTitle").change(getErrors());
function getErrors(){
console.log($(".nombre").val()+"/"+$(".email").val());
if($("#nombre").val() === "" || $("#nombre").val() === "undefined"){
$("#nombre").addClass("error");
}else{
$("#nombre").removeClass("error");
}
if($("#email").val() !== "" && $("#email").val() !== "undefined"){
$("#email").removeClass("error")
}else{
$("#email").addClass("error");
}
}
});
在我更改任何内容之前执行该函数,如果我尝试使用click()事件,它会发生完全相同的事情。我只是想用最简单的验证方法来改变背景颜色,以便根据我的意愿改变错误。
<form action="index.php" method="post" id="contact">
<div class="form-group">
<label for="exampleInputEmail1">Nombre*</label>
<input type="text" class="form-control" id="nombre" name="NAME" placeholder="Nombre y Apellidos">
</div>
<div class="form-group">
<label for="email">Email*</label>
<input type="email" class="form-control" id="email" name="EMAIL" placeholder="@">
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="aviso_legal"> <p>He leído y acepto la <a class="fancybox fancybox.iframe" href="../politica_es.html">política de privacidad</a></p>
</label>
</div>
<p id="errorTitle"><?=$error?></p>
<button type="submit" class="enviar">ENVIAR</button>
</form>
答案 0 :(得分:1)
$("#errorTitle").change(getErrors());
您正在调用getErrors
并将结果传递给.change
。由于getErrors()
没有返回任何内容,因此此代码等同于:
getErrors();
$("#errorTitle").change(undefined);
您可能打算:
$("#errorTitle").change(getErrors); // no ()
答案 1 :(得分:0)
需要
$("#errorTitle").change(getErrors);
将()
添加到函数中会立即执行它(例如用于返回值)
var something = getSomethingBack(); // calls function
var something = getSomethingBack; // assigns function to variable
答案 2 :(得分:0)
您需要设置一个函数来处理更改事件,如下所示:
<script type="text/javascript">
$(document).ready(function(){
$("#errorTitle").change(function(){getErrors();});
}
function getErrors(){
console.log($(".nombre").val()+"/"+$(".email").val());
if($("#nombre").val() === "" || $("#nombre").val() === "undefined"){
$("#nombre").addClass("error");
}else{
$("#nombre").removeClass("error");
}
if($("#email").val() !== "" && $("#email").val() !== "undefined"){
$("#email").removeClass("error")
}else{
$("#email").addClass("error");
}
}
</script>
您的代码在每个$(document).ready
功能中整合您的功能。您还可以更改$("#errorTitle").change(getErrors());
$("#errorTitle").change(getErrors);