Что мешает моей форме быть принятым? - PullRequest
0 голосов
/ 01 мая 2018

Я создал форму и проверяю ее на стороне клиента с помощью jquery. Проверки работают хорошо, но после проверок форма не отправляется. Может кто-нибудь сказать мне, что здесь не так?

События размытия работают нормально ... Но форма не отправлена. Атрибут action формы указывает на функцию laravel.

Форма: -

  <form id="demo_form2" method="post" action="{{url('admin/manage/save_admin')}}" enctype="multipart/form-data">
<input type="text" id="name" required="required" name="name"><span id="namerror">
<input type="text" id="email" name="email" required="required" ><span id="emailerror">
 <input type="password" id="password" name="password" required="required"><span id="passerror">
<input name="myfile"  type="file" id="file1" accept="image/*"><span id="imgerror">
</form>

<script type="text/javascript">
  $(document).ready(function(){
   var nm=$('#name').val();
      var em=$('#email').val();
      var ps=$('#password').val();
      var img=$('#file1').val();
       var nmreg=/^[A-Za-z ]{3,20}$/i;
       var emreg=/^\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i;
       var psreg=/^[a-z0-9A-Z!@#$%^&*() <>{}()?/":']{6,30}$/i;
    $('#demo_form2').submit(function(e){
      e.preventDefault();


       if(nmreg.test(nm)==false || nm.trim()=='' || nm==''){return false;}
else{return true;}
      if(emreg.test(em)==false || em.trim()=='' || em==''){return false;}
else{return true;}
      if(psreg.test(ps)==false || ps.trim()=='' || ps==''){return false;}
else{return true;}
      if(img=='' || img.trim()==''){return false;}
else{return true;}

    });

    $('#name').on('blur',function(){
       if(nmreg.test(nm)==false || nm.trim()=='' || nm=='')
       {
            $('#nameerror').html("Please Enter Valid Name");
          return false;
       }
       else
       {
          $('#nameerror').html("");
          return true;
       }
    });


    $('#email').on('blur',function(){
      if(emreg.test(em)==false || em.trim()=='' || em==''){  $('#emailerror').html("Please Enter Valid Email");
        return false;}
      else{  $('#emailerror').html("");
         return true;
      }
    });


    $('#password').on('blur',function(){
      if(psreg.test(ps)==false || ps.trim()=='' || ps=='')
      {
        $('#passerror').html("Enter Valid Password(6-30 characters)");
        return false;
      }
      else { $('#passerror').html("");
        return true; }
    });

    $('#file1').on('blur',function(){
   if(img==''){        $('#imgerror').html("Select an Image"); }
      else{   $('#imgerror').html("");
        return true; }
    });
  });
</script>

1 Ответ

0 голосов
/ 01 мая 2018

Обработчик событий submit вашей формы вызывает: e.preventDefault(); как самое первое, что он делает, поэтому ни один другой код не окажет никакого влияния. Вы отменили событие отправки формы.

Удалите эту строку и используйте ее только тогда, когда вы знаете, что ваша форма недействительна.

Вместо того, чтобы засорять ваш код return true и return false, предположим, что форма действительна, и только когда проверочные тесты докажут, что это не так, отмените событие submit с аргументом event, который является автоматически передается на ваш обратный вызов, как это e.preventDefault().

Кроме того (FYI), метод .html() предназначен для установки / получения строк, содержащих HTML. Если вы не используете строки HTML, используйте .text(). Это быстрее и безопаснее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...