JQuery сообщение для проверки и отправки - PullRequest
0 голосов
/ 01 августа 2010

Я использую jquery для проверки каждого поля в моей форме, а также использую jquery для отображения сообщения «загрузки» после отправки формы. Теперь, в моем случае, я запутался, когда нажал на кнопку «Отправить», будут показаны сообщения проверки и сообщение о загрузке. Мне нужно показать только загрузочное сообщение, когда все правильно.

<html lang="en"> 
    <head> 
        <title>SO question 3377468</title> 
        <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
        <script> 
            $(document).ready(function() { 
                $('#form').submit(function() { 
                    $('#progress').show(); 
                }); 
            }); 
        </script> 
        <style> 
            #progress {  
                display: none; 
                color: green;  
            } 
        </style>             
    </head> 
    <body> 
        <form id="form" action="servlet-url" method="post"> 
            ... 
            <input type="submit"> 
        </form> 
        <div id="progress">Please wait...</div> 
    </body> 
</html> 

Как показать сообщение jquery после нажатия на кнопку отправки

Я взял этот код, когда один из коллег помог, и теперь я хочу завершить это.

Ответы [ 3 ]

2 голосов
/ 17 января 2011

Ответ Ника почти сработал для меня - но я думаю , вам также необходимо отправить форму ...

$(document).ready(function(){  
    $("#form").validate({  
        //other options...  
        submitHandler: function() {  
            $('#progress').show();   
            form.submit();  
        }  
    });  
});  
1 голос
/ 01 августа 2010

Если вы используете плагин проверки (мне не ясно по этому вопросу, но он помечен таким образом), просто немного переместите свой код.Вместо этого:

$(document).ready(function() { 
    $('#form').submit(function() { 
        $('#progress').show(); 
    }); 
});

Вы хотите использовать submitHandler параметр плагина, эта функция запускается только после того, как форма успешно прошла проверяется и отправляется следующим образом:

$("#form").validate({
  //other options...
  submitHandler: function() {
    $('#progress').show(); 
  }
});

Это означает, что просто удалите этот первый блок кода, код submitHandler - это все, что вам нужно было оставить для #progress.

0 голосов
/ 01 августа 2010

Возможно что-то вроде:

<input type="button" value="SUBMIT" onclick="validateFunction()">

Затем в вашем validateFunction, в конце, если все будет хорошо, позвоните document.form.submit(), который обработает ваш диалог загрузки и отправит форму.

Кроме того, поскольку вы указали, что используете для проверки jquery, при текущей настройке человек с отключенным javascript может по-прежнему отправлять недопустимые данные (вызывая все виды удаленных таблиц и тому подобное).С помощью этого метода (отправка вызывается в скрипте) они не смогут отправлять ВСЕ.

Другой маршрут:

<input type="submit" onclick="validateFunction();return false;">

И в конце вашей проверкиФункция устанавливает его для возврата (true / false), если это нормально для отправки или нет.Затем выполните повторную проверку на стороне сервера с использованием PHP или чего-либо еще и верните ошибку, если возникнут проблемы.Это позволяет пользователям без JavaScript по-прежнему пытаться отправить, но не уничтожить ваш сайт.

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