jQuery change()在重新加载时执行

jQuery change() executes when reload

本文关键字:加载 执行 change jQuery 新加载      更新时间:2023-09-26

我不知道为什么,但有了这个代码:

$(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>
$("#errorTitle").change(getErrors());

您正在调用getErrors并将结果传递给.change。由于getErrors()不返回任何内容,因此此代码等效于:

getErrors();
$("#errorTitle").change(undefined);

您可能有意:

$("#errorTitle").change(getErrors); // no ()

它需要是

$("#errorTitle").change(getErrors);

()添加到函数将立即执行(例如用于返回值)

var something = getSomethingBack(); // calls function
var something = getSomethingBack; // assigns function to variable

您需要设置一个函数来处理更改事件,如下所示:

<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);