Как очистить сообщение об ошибке проверки на стороне сервера, если пользователь вводит правильное значение? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть форма и поля Name, Mobile, Email and Message.Я использую проверку JQuery.Нет проблем с проверкой Jquery.Я получаю сообщение об ошибке проверки на стороне сервера.

Я отправляю форму, используя AJAX, и отображаю сообщение об ошибке сервера, используя ответ JSON.

Это также работает отлично, но проблема в том, что яЯ не могу удалить сообщение об ошибке на стороне сервера, когда пользователь вводит значение.

Если поле Name пусто, оно отображает сообщение об ошибке, но после ввода имени оно все еще отображает сообщение об ошибке.

Проверьте, когда поле Имя пусто, и отображается проверка на стороне сервера.

enter image description here

После ввода имени по-прежнему отображается сообщение об ошибке.

enter image description here

Не могли бы вы помочь мне в этом вопросе?

AJAX

$("#form").validate({
        rules: {
            name:{
                required:true,
                minlength:3,
                lettersonly: true
            },
            mobileno:{
                required:true,
                minlength:10,
                maxlength:10,
                number: true
            },
            email:{
                required:true,
                email:true
            },
             message:{
                minlength:10
            }
        },  
        highlight: function(element) {
            $(element).removeClass("error");
        },   
        submitHandler: function(form) {
            //form.submit();
            $.ajax({
            url: "process.php",
            type: "POST",
            data: $('#form').serialize(),
            success: function (data) {
            var response = JSON.parse(data); 
             if (response.error_no === '1'){
                $('#errorname').html(response.error);
             }
             else if (response.error_no === '2'){
                $('#errorMobile').html(response.error);
             }
             else if(response.error_no === '3'){
                  $('#errorEmail').html(response.error);
             }
             else if(response.error_no === '4'){
              alert(response.error);
             }
             else{
                      $("#popup_verify-1").hide(); 
                      $("#popup_success-1").show(); 
                      $('#form')[0].reset();     
                     }
                  },
                  error: function (jXHR, textStatus, errorThrown) {
                    alert(errorThrown);
                  }
                }); // AJAX Get Jquery statment
                }
    });

Process.php

$name=$conn->real_escape_string(trim($_POST['name']));
      $mobileno=$conn->real_escape_string(trim($_POST['mobileno']));
      $email=$conn->real_escape_string(trim($_POST['email']));
      $message=$conn->real_escape_string(trim($_POST['message']));
      $ipaddress=$_SERVER['REMOTE_ADDR'];//ip address

  if($name =="") {
    $errorMsg[]=  "You did not enter a name.";
    $code= "1" ;
    }
  elseif($mobileno == "") {
    $errorMsg[]=  "Please enter number.";
    $code= "2";
  }
  elseif(is_numeric(trim($mobileno)) == false){
    $errorMsg[]=  "Please enter numeric value.";
    $code= "2";
  }elseif(strlen($mobileno)<10){
    $errorMsg[]=  "Number should be ten digits.";
    $code= "2";
  }elseif($email == ""){
    $errorMsg[]=  "You did not enter a email.";
    $code= "3";
} //check for valid email 
elseif(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)){
  $errorMsg[]= 'You did not enter a valid email.';
  $code= "3";
}

else{
       $sql="INSERT INTO contactus (name, mobileno, email, message, date_of_contact,ipaddress) VALUES (?, ?, ?, ?,?,?)";
       if ($stmt = $conn->prepare($sql)) {
          $stmt->bind_param("ssssss", $name, $mobileno, $email, $message, $currentdate, $ipaddress);
          $stmt->execute(); 
          $errorMsg[]=1;
       }
       else{
      $code= "4";
        $errorMsg[]='Poor Network Connection';
       }
        $stmt->close();
       $conn->close();
    }

    $respnonse['error_no']=$code;
    $respnonse['error']=$errorMsg;
  echo json_encode($respnonse);

1 Ответ

0 голосов
/ 12 октября 2018

Проблема на самом деле все еще на стороне клиента.Данные, которые вы возвращаете, верны, без ошибок, но вы не удаляете свои ошибки со страницы.

Поэтому используйте что-то подобное, чтобы убрать ошибки:

var response = JSON.parse(data); 

var hasError = false;
if (response.error_no === '1') {
    $('#errorname').html(response.error);
    hasError = true;
} else {
    $('#errorname').html('');
}

if (!hasError) {
    alert('Success, no errors!');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...