Show loading gif after clicking form submit using jQuery

前端 未结 4 1484
没有蜡笔的小新
没有蜡笔的小新 2020-12-03 17:25

I\'m trying to simply show a loading gif once the form is submitted. My code is not working correctly for the loading gif to show. You\'ll see my image for the gif is set to

相关标签:
4条回答
  • 2020-12-03 18:01

    What about an onclick function:

        <form id="form">
        <input type="text" name="firstInput">
        <button type="button" name="namebutton" 
               onClick="$('#gif').css('visibility', 'visible');
                        $('#form').submit();">
        </form>
    

    Of course you can put this in a function and then trigger it with an onClick

    0 讨论(0)
  • 2020-12-03 18:05

    Button inputs don't have a submit event. Try attaching the event handler to the form instead:

    <script type="text/javascript">
         $('#login_form').submit(function() {
           $('#gif').show(); 
           return true;
         });
     </script>
    
    0 讨论(0)
  • 2020-12-03 18:19

    The show() method only affects the display CSS setting. If you want to set the visibility you need to do it directly. Also, the .load_button element is a button and does not raise a submit event. You would need to change your selector to the form for that to work:

    $('#login_form').submit(function() {
        $('#gif').css('visibility', 'visible');
    });
    

    Also note that return true; is redundant in your logic, so it can be removed.

    0 讨论(0)
  • 2020-12-03 18:19

    Better and clean example using JS only

    Reference: TheDeveloperBlog.com

    Step 1 - Create your java script and place it in your HTML page.

    <script type="text/javascript">
        function ShowLoading(e) {
            var div = document.createElement('div');
            var img = document.createElement('img');
            img.src = 'loading_bar.GIF';
            div.innerHTML = "Loading...<br />";
            div.style.cssText = 'position: fixed; top: 5%; left: 40%; z-index: 5000; width: 422px; text-align: center; background: #EDDBB0; border: 1px solid #000';
            div.appendChild(img);
            document.body.appendChild(div);
            return true;
            // These 2 lines cancel form submission, so only use if needed.
            //window.event.cancelBubble = true;
            //e.stopPropagation();
        }
    </script>
    

    in your form call the java script function on submit event.

    <form runat="server"  onsubmit="ShowLoading()">
    </form>
    

    Soon after you submit the form, it will show you the loading image.

    0 讨论(0)
提交回复
热议问题