Ошибка в утверждении, не скрывает от себя сообщение ошибки с javascript

Сейчас с кодом, который я поместил, оставив в мишени поля, не кладется красный край неудара в лунку, и когда я пишу в поле, они скрывают сообщения ошибки в других полях.......

jQuery.noConflict();
var nombre = document.getElementById("nombre");
var correo = document.getElementById("correo");
var mensaje = document.getElementById("mensaje");


jQuery(document).on('click', '#enviar', function($) 
{
	


	jQuery("#nombre").on("input", function() 
	{ 
		if(jQuery("#nombre").val().length < 4)
		{
		    jQuery("#nombre").css("border", "3px solid red");
		    jQuery(".msgerror1").css("visibility", "visible");
		   
		}
		else
		{
			jQuery("#nombre").css("border", "1px solid ");
			jQuery(".msgerror1").css("visibility", "hidden");
		}
});

	jQuery("#correo").on("input", function() 
	{ 
		if(jQuery("#correo").val().length < 4)
		{
		    
		    jQuery("#correo").css("border", "3px solid red");
		    jQuery(".msgerror1").css("visibility", "visible");

		}
		else
		{
			jQuery("#correo").css("border", "1px solid ");
			jQuery(".msgerror1").css("visibility", "hidden");
		}
});

	jQuery("#mensaje").on("input", function() 
	{ 

		if(jQuery("#mensaje").val().length == 0)
		{
		    
		 
		    jQuery("#mensaje").css("border", "3px solid red");
		    jQuery(".msgerror1").css("visibility", "visible");
		}
		else
		{
			jQuery("#mensaje").css("border", "1px solid ");
			jQuery(".msgerror1").css("visibility", "hidden");
		}
});
	
	if(jQuery("#privacidad")!== 'acepto')
	{
	    
	 
	  
	    jQuery(".msgerror1").css("visibility", "visible");
	}
	else
	{
		
		jQuery(".msgerror1").css("visibility", "hidden");
	}
});
.msgerror1
{
	color: red;
	visibility: hidden;
	font-size: 12px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="#" method="post" id="myform" ><!-- onsubmit="return enviarform();"> -->
			<ul class="ulformu">
				<li  class="liformu">	
					<label for="nombre"></label>
					
						
			      	  <input name="nombre" id="nombre" type="text" placeholder="Nombre*" autofocus=""  >
					<p class="msgerror1">el campo nombre es obligatorio</p>
				</li>
				<li class="tlf liformu">
					<label for="correo"></label>
						
			      	  <input name="correo" id="correo" type="email" placeholder="Correo*" >
			      	  	<p class="msgerror1">El campo correo es obligatorio</p>
			      	  	


					
				</li>
				<li>
					
				</li>
				<li class="liformu">
					<textarea name="mensaje" id="mensaje"  placeholder="¿En que te puedo ayudar?*"></textarea>
						<p class="msgerror1">el mensaje es obligatorio</p>
				</li>

				<li>
					<input type="checkbox" name="checkbox" id="privacidad" value="acepto"> <label for="cbox2">He leído y acepto la <a target="_blank" class="po" href="http://localhost/adela/politica-de-privacidad/">política de uso de datos</a></label>
					<p class="msgerror1">Tienes que aceptar la política de uso de datos</p>
				</li>
				
				<li class="liformu boton">
					 <input id="enviar" type="submit" value="Enviar" />
				</li>
			</ul>	
		</form>
if(jQuery("#mensaje").val().length < 6)
    {


        jQuery("#mensaje").css("border", "3px solid red");
        jQuery(".msgerror1").css("visibility", "visible");
    }
    else
    {
        jQuery("#mensaje").css("border", "1px solid ");
        jQuery(".msgerror1").css("visibility", "hidden");
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="liformu">
                    <textarea name="mensaje" id="mensaje"  placeholder="¿En que te puedo ayudar?*"></textarea>
                        <p class="msgerror1">el mensaje es obligatorio</p>
                </li>

вы можете видеть это здесь www.adela.insertcoinproductos.com в контакте, дайте ему посылать, не наполняя какого-то поля и у вас выйдет сообщение и потом наполните поле сообщение и он не исчезает. я иду немного смотря код и не нахожу неудачу......

3
задан 17.01.2017, 17:58
0 ответов

Как сказал Альваро Монторо в комментариях, добавляешь ли ты событие input ты можешь анализировать длину текста по мере того, как ты вводишь символы

Относительно UPDATE в вопросе

Все твои коды сообщения называются msgerror1 поэтому он применяется ко всем изменениям. Помести индивидуальные имена и ты они сможешь контролировать каждого независимо

jQuery.noConflict();
var nombre = document.getElementById("nombre");
var correo = document.getElementById("correo");
var mensaje = document.getElementById("mensaje");


jQuery(document).on('click', '#enviar', function($) {


    if (jQuery("#nombre").val().length < 4) {
        jQuery("#nombre").css("border", "3px solid red");
        jQuery(".msgerror1").css("visibility", "visible");
    }
    if (jQuery("#correo").val().length < 4) {
        jQuery("#correo").css("border", "3px solid red");
        jQuery(".msgerror2").css("visibility", "visible");
    }
    if (jQuery("#mensaje").val().length == 0) {
        jQuery("#mensaje").css("border", "3px solid red");
        jQuery(".msgerror3").css("visibility", "visible");
    }

    jQuery("#nombre").on("input", function() {
        if (jQuery("#nombre").val().length < 4) {
            jQuery("#nombre").css("border", "3px solid red");
            jQuery(".msgerror1").css("visibility", "visible");

        } else {
            jQuery("#nombre").css("border", "1px solid ");
            jQuery(".msgerror1").css("visibility", "hidden");
        }
    });

    jQuery("#correo").on("input", function() {
        if (jQuery("#correo").val().length < 4) {

            jQuery("#correo").css("border", "3px solid red");
            jQuery(".msgerror2").css("visibility", "visible");

        } else {
            jQuery("#correo").css("border", "1px solid ");
            jQuery(".msgerror2").css("visibility", "hidden");
        }
    });

    jQuery("#mensaje").on("input", function() {

        if (jQuery("#mensaje").val().length == 0) {


            jQuery("#mensaje").css("border", "3px solid red");
            jQuery(".msgerror3").css("visibility", "visible");
        } else {
            jQuery("#mensaje").css("border", "1px solid ");
            jQuery(".msgerror3").css("visibility", "hidden");
        }
    });

    if (!document.getElementById('privacidad').checked) {


        jQuery(".msgerror4").css("visibility", "visible");
    } else {

        jQuery(".msgerror4").css("visibility", "hidden");
    }
});
p.msgerror1, p.msgerror2, p.msgerror3, p.msgerror4
{
	color: red;
	visibility: hidden;
	font-size: 12px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="#" method="post" id="myform">
    <!-- onsubmit="return enviarform();"> -->
    <ul class="ulformu">
        <li class="liformu">
            <label for="nombre"></label>


            <input name="nombre" id="nombre" type="text" placeholder="Nombre*" autofocus="">
            <p class="msgerror1">el campo nombre es obligatorio</p>
        </li>
        <li class="tlf liformu">
            <label for="correo"></label>

            <input name="correo" id="correo" type="email" placeholder="Correo*">
            <p class="msgerror2">El campo correo es obligatorio</p>




        </li>

        <li class="liformu">
            <textarea name="mensaje" id="mensaje" placeholder="¿En que te puedo ayudar?*"></textarea>
            <p class="msgerror3">el mensaje es obligatorio</p>
        </li>

        <li>
            <input type="checkbox" name="checkbox" id="privacidad" value="acepto">
            <label for="cbox2">He leído y acepto la <a target="_blank" class="po" href="http://localhost/adela/politica-de-privacidad/">política de uso de datos</a>
            </label>
            <p class="msgerror4">Tienes que aceptar la política de uso de datos</p>
        </li>

        <li class="liformu boton">
            <input id="enviar" type="submit" value="Enviar" />
        </li>
    </ul>
</form>
3
ответ дан 03.12.2019, 17:39

С событием input, он включается пока ты пишешь в поле

$(document).ready(function(){
  $("#mensaje").on("input",function(){

if($("#mensaje").val().length < 6)
    {


        $("#mensaje").css("border", "3px solid red");
        $(".msgerror1").css("visibility", "visible");
    }
    else
    {
        $("#mensaje").css("border", "1px solid ");
        $(".msgerror1").css("visibility", "hidden");
    }
});
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="liformu">
                    <textarea name="mensaje" id="mensaje"  placeholder="¿En que te puedo ayudar?*"></textarea>
                        <p class="msgerror1">el mensaje es obligatorio</p>
                </li>

С событием focus он включается, когда ты находишься в поле

$(document).ready(function(){
  $("#mensaje").focus(function(){

if($("#mensaje").val().length < 6)
    {


        $("#mensaje").css("border", "3px solid red");
        $(".msgerror1").css("visibility", "visible");
    }
    else
    {
        $("#mensaje").css("border", "1px solid ");
        $(".msgerror1").css("visibility", "hidden");
    }
});
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="liformu">
                    <textarea name="mensaje" id="mensaje"  placeholder="¿En que te puedo ayudar?*"></textarea>
                        <p class="msgerror1">el mensaje es obligatorio</p>
                </li>
4
ответ дан 03.12.2019, 17:39
  • 1
    он не снимает сообщение, которое является тем, что хочет OP –  17.01.2017, 17:39
  • 2
    @lois6b, если прощение долга кредитором делая focus снова в поле –  17.01.2017, 17:41
  • 3
    тогда ты должен вытекать из поля и вновь входить для того, чтобы он это санкционировал? когда могут писать просто и уйдите? Ты не объяснил кроме того твой код. Только ты это прикрепил –  17.01.2017, 17:41
  • 4
    @lois6b согласно Вашему описанию проблемы он говорит, что он выходит из фокуса кликая, и потом возвращается в поле, но не удаляется сообщение. podeis verlo aqui www.adela.insertcoinproductos.com en contacto, dadle a enviar sin rellenar algun campo y os saldrá el mensaje y luego rellenad el campo mensaje y no desaparece. llevo un rato mirando el código y no encuentro el fallo...... –  17.01.2017, 17:43
  • 5
    @lois6b в любом случае я поместил два примера, которые практически очень сходные –  17.01.2017, 17:45

твой код хорошо, может быть только тебе осталось делать действие, что я выстрелил в это утверждение, ты можешь делать это с keyup.

            <script> 
            $( "#mensaje" ).keyup(function() {
                 if(jQuery("#mensaje").val().length < 6) {
                    jQuery("#mensaje").css("border", "3px solid red");
                    jQuery(".msgerror1").css("visibility", "visible");
                } else {
                    jQuery("#mensaje").css("border", "1px solid ");
                    jQuery(".msgerror1").css("visibility", "hidden");
                } 
            });
            </script>
3
ответ дан 03.12.2019, 17:39