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

时间:2015-02-10 15:13:45

标签: javascript jquery css

我不知道为什么,但是用这段代码:

$(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>

3 个答案:

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