显示使用 AJAX 提交的加载程序图像

showing loader image with submition using ajax

本文关键字:加载 程序 图像 提交 AJAX 显示      更新时间:2023-09-26
$(document).ready(function(){
    $('#registration_form').on('submit',function(e){
     /// e.preventDefault();
     $("#loading").show();
      var email = $('#email').val();
      var checkEmail = $("#email").val().indexOf('@');
      var checkEmailDot = $("#email").val().indexOf('.');
    if(email == ''){
      $("#email").addClass('error');
      error_flag = 1; 
    }
    if(checkEmail<3 || checkEmailDot<9){
     $("#email").addClass('error');
     error_flag = 1;  
   }
      $.ajax({
         url: "<?=base_url('controller/registration_ajax')?>",
         // url: "<?=base_url('controller/register')?>",
        type: "POST",
        datatype: "JSON",
        data: {email: email},
        success: function(res){
          var data = $.parseJSON(res);
          var status = data.status;
          var message = data.message;
          if(status == 'true'){
            // $('#myModal').modal('hide');
            $('#message').html('');
            $('#message').html(message);
            $('#message').css('color',"green");
            $("loading").hide();
          }
          else{
            $('#message').html('');
            $('#message').html(message);
            $('#message').css('color',"red");
          }
        }
      });
     e.preventDefault();
    });
  });

how to use loader with ajax when message is success the load stop when message is or error loader is stop  how to use loader image image in this stiuation. if submition is true loading hide if false loading also hide.

如何在消息成功时将加载器与 AJAX 一起使用,当消息停止加载或错误加载器停止时,如何在此设置中使用加载器图像图像。 如果提交为真,则加载隐藏,如果错误加载也隐藏。

您可以使用

always处理程序来执行此操作。

另请注意,只有在发送 ajax 时才应该这样做loader,因此在您的情况下,只有在完成验证后才应该这样做。

$(document).ready(function() {
  $('#registration_form').on('submit', function(e) {
    /// e.preventDefault();    
    var email = $('#email').val();
    var checkEmail = $("#email").val().indexOf('@');
    var checkEmailDot = $("#email").val().indexOf('.');
    if (email == '') {
      $("#email").addClass('error');
      error_flag = 1;
    }
    if (checkEmail < 3 || checkEmailDot < 9) {
      $("#email").addClass('error');
      error_flag = 1;
    }
    $.ajax({
      url: "<?=base_url('controller/registration_ajax')?>",
      // url: "<?=base_url('controller/register')?>",
      type: "POST",
      datatype: "JSON",
      data: {
        email: email
      },
      beforeSend: function() {
        //show it only if the request is sent
        $("#loading").show();
      },
      success: function(res) {
        var data = $.parseJSON(res);
        var status = data.status;
        var message = data.message;
        if (status == 'true') {
          // $('#myModal').modal('hide');
          $('#message').html('');
          $('#message').html(message);
          $('#message').css('color', "green");
          $("loading").hide();
        } else {
          $('#message').html('');
          $('#message').html(message);
          $('#message').css('color', "red");
        }
      }
    }).always(function() {
      //irrespective of success/error hide it
      $("#loading").hide();
    });
    e.preventDefault();
  });
});

有一个这样的加载图像:

<img src="loader.gif" id="loader" />

在脚本中,在 AJAX 调用之前,显示它:

$("#loader").fadeIn(); // You can also use `.show()`
$.ajax({
  // all your AJAX stuff.
  // Inside the success function.
  success: function (res) {
    // all other stuff.
    // hide the image
    $("#loader").fadeOut(); // You can also use `.hide()`
  } // End success
}); // End AJAX

解决您的问题

您在通话中缺少#

$("loading").hide();
//-^ Add a # here.

将其更改为:

$("#loading").hide();

我会这样做:

function loadsth(){
    $('#load_dialog').show();
    $.ajax({
        method: "POST",
        url: "?ajax=ajax_request",
        data: { data:"test"},
        success:function(data) {
            $('#load_dialog').hide();
            }
        });         
    });

尝试使用 jquery 的 ajax 函数beforeSend

$.ajax({
    method: "POST",
    url: "/url",
    data: { data:"test"},
    beforeSend: function() {
        //SHOW YOUR LOADER
    },
    success:function(data) {
        //HIDE YOUR LOADER
        }
    });         
});

我希望这给了你一些想法。

试试这个它为你工作

$.ajax({
       url: "<?=base_url('controller/registration_ajax')?>",
       type: 'POST',
          beforeSend: function(){
            $("#loaderDiv").show();
        },
       success: function(data) {
            $('#output-json-inbox').jJsonViewer(data);
            $("#loaderDiv").hide();
       },          
       error: function() {
        alert("error");
       }
    });