Проверка и AJAX один из них не работает - PullRequest
0 голосов
/ 10 мая 2019

После кода проверки я написал некоторый код ajax, но когда я пишу onclick = "return chk ()" в поле ввода input, тогда код проверки больше не работает, и когда я удаляю его, код проверки работает, а ajax нет, так что может быть проблемой ?????????????

код AJAX и JQuery

$(document).ready(function(e) {

 $.validator.addMethod("alphabet", function(value, element) {
        return this.optional(element) || /^[a-zA-Z ]*$/.test(value);
    });
  $("#registration").validate({

    rules: {

      name: {
                    required: true,
                    minlength : 3,
                    alphabet: true,
      },  

      vorname: {
                    required: true,
                    minlength : 3,
                    alphabet: true,


      },  

      email: {
                    required: true,
                    email: true,
      },

       url: {
                    url: true,
      },

       image:{
                    required:true,
                    accept:"png",
                }
    },
    messages: {

                     name:{
                        required:"Name ist benötigen",
                        minlength :"Name muss mendisten 3 Buchstaben",

                    },

                    vorname:{
                        required:" Vorname ist benötigen",
                        minlength :"Name muss mendisten 3 Buchstaben",

                    },
                    email:{
                       required :" Email ist benötigen",
                       email :" Email muss"
                    },
                    Url:" URL muss benötigen",
                    image:"Image muss nur PNG sein",



    },

    submitHandler: function(form) {
      form.submit();
      alert ('Vielen Danke Für Ihre Anmeldung');
    }
  });
});

function chk(){

                        var name = document.getElementById('name').value;
                        var vorname = document.getElementById('vorname').value;
                        var email = document.getElementById('email').value;
                        var url = document.getElementById('url').value;
                        var image = document.getElementById('image').value;

                        var dataString='name='+ name + '&vorname='+vorname+ '&email='+email+ '&url='+url+ '&image='+image;
                        $.ajax({
                            type:"post",
                            url:"mainphp.php",
                            data:dataString,
                            cashe:false,
                            success:function(info){
                                $('#msg').html(info);
                            }

                        })
                        return false; 
                    }

HTML код

<!DOCTYPE>
<html>
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" href="main.css">
                <script src="http://code.jquery.com/jquery-1.9.1.js"" ></script> 
                <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
                <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"></script>
                <script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.15.0/additional-methods.js"></script>
                <script language="javascript" type="text/javascript" src="javascript.js"></script>


    </head>
    <body>          
        <form class="form" name="registration" id="registration" action="" method="post" enctype="multipart/form-data" >
            <label for="name">Name</label>
            <input type="text" name="name" id="name" value="">
            <br><br>
            <label for="vorname">Vorame</label>
            <input type="text" name="vorname" id="vorname" value="">
            <br><br>
            <label for="email">Email</label>
            <input type="text" name="email"  id="email" value="">
            <br><br>
            <label for="name">URL</label>
            <input type="text" name="url" id="url" value="">
            <br><br>
            <input type="file" name="image" id="image" >
            <br><br>
            <input type="submit" value="Submit" onclick="return chk()" >
        </form>
            <p id="msg"></p>  
    </body>
</html>


Ответы [ 2 ]

1 голос
/ 10 мая 2019

Вызовите функцию chk () напрямую, как показано ниже

$.validator.addMethod("alphabet", function(value, element) {
        return this.optional(element) || /^[a-zA-Z ]*$/.test(value);
    });
  $("#registration").validate({

    rules: {

      name: {
                    required: true,
                    minlength : 3,
                    alphabet: true,
      },  

      vorname: {
                    required: true,
                    minlength : 3,
                    alphabet: true,


      },  

      email: {
                    required: true,
                    email: true,
      },

       url: {
                    url: true,
      },

       image:{
                    required:true,
                    accept:"png",
                }
    },
    messages: {

                     name:{
                        required:"Name ist benötigen",
                        minlength :"Name muss mendisten 3 Buchstaben",

                    },

                    vorname:{
                        required:" Vorname ist benötigen",
                        minlength :"Name muss mendisten 3 Buchstaben",

                    },
                    email:{
                       required :" Email ist benötigen",
                       email :" Email muss"
                    },
                    Url:" URL muss benötigen",
                    image:"Image muss nur PNG sein",



    },

    submitHandler: function(form) {
      formData = new FormData(form);
      chk(form);
      return false;
      alert ('Vielen Danke Für Ihre Anmeldung');
    }

  });
});
0 голосов
/ 10 мая 2019

Вам не нужно вызывать функцию onClick для отправки данных на сервер. Вы можете поместить свой код в submitHandler.Преимущество этого состоит в том, что, если форма недействительна, она не будет отправлять запросы (отправлять данные) на сервер.

  <!DOCTYPE >
    <html>
      <head>
        <meta charset="UTF-8" />
        <link rel="stylesheet" href="main.css" />
        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
        <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"></script>
        <script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.15.0/additional-methods.js"></script>
        <script
          language="javascript"
          type="text/javascript"
          src="javascript.js"
        ></script>
      </head>
      <body>
        <form
          class="form"
          name="registration"
          id="registration"
          action=""
          method="post"
          enctype="multipart/form-data"
        >
          <label for="name">Name</label>
          <input type="text" name="name" id="name" value="" />
          <br /><br />
          <label for="vorname">Vorame</label>
          <input type="text" name="vorname" id="vorname" value="" />
          <br /><br />
          <label for="email">Email</label>
          <input type="text" name="email" id="email" value="" />
          <br /><br />
          <label for="name">URL</label>
          <input type="text" name="url" id="url" value="" />
          <br /><br />
          <input type="file" name="image" id="image" />
          <br /><br />
          <input type="submit" value="Submit" />
        </form>
        <p id="msg"></p>
      </body>
      <script>
        $(document).ready(function(e) {
          $.validator.addMethod("alphabet", function(value, element) {
            return this.optional(element) || /^[a-zA-Z ]*$/.test(value);
          });
          $("#registration").validate({
            rules: {
              name: {
                required: true,
                minlength: 3,
                alphabet: true
              },

              vorname: {
                required: true,
                minlength: 3,
                alphabet: true
              },

              email: {
                required: true,
                email: true
              },

              url: {
                url: true
              },

              image: {
                required: true,
                accept: "png"
              }
            },
            messages: {
              name: {
                required: "Name ist benötigen",
                minlength: "Name muss mendisten 3 Buchstaben"
              },

              vorname: {
                required: " Vorname ist benötigen",
                minlength: "Name muss mendisten 3 Buchstaben"
              },
              email: {
                required: " Email ist benötigen",
                email: " Email muss"
              },
              Url: " URL muss benötigen",
              image: "Image muss nur PNG sein"
            },

            submitHandler: function(form) {
              var name = document.getElementById("name").value;
              var vorname = document.getElementById("vorname").value;
              var email = document.getElementById("email").value;
              var url = document.getElementById("url").value;
              var image = document.getElementById("image").value;

              var dataString =
                "name=" +
                name +
                "&vorname=" +
                vorname +
                "&email=" +
                email +
                "&url=" +
                url +
                "&image=" +
                image;
              $.ajax({
                type: "post",
                url: "mainphp.php",
                data: dataString,
                cashe: false,
                success: function(info) {
                  $("#msg").html(info);
                }
              });
              //alert("Vielen Danke Für Ihre Anmeldung");
            }
          });
        });
      </script>
    </html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...