JQuery проверить плагин без кнопки отправки - PullRequest
0 голосов
/ 08 мая 2018

При нажатии на кнопку «Go» выдается сообщение все хорошо , даже если в полях указаны недопустимые значения.

<!DOCTYPE html>
    <html>
    <head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <meta name="robots" content="noindex, nofollow">
      <meta name="googlebot" content="noindex, nofollow">
      <meta name="viewport" content="width=device-width, initial-scale=1">



        <script type="text/javascript" src="https://code.jquery.com/jquery-1.8.3.js"></script>  


        <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js"></script>


        <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/additional-methods.js"></script>



      <title></title>




    <script type="text/javascript">


    $(document).ready(function () {

        jQuery.validator.addMethod('integer', function (value, element, param) {
            return (value != 0) && (value == parseInt(value, 10));
        }, 'Please enter a non zero integer value!');

        $('#myform').validate({
            rules: {
                field1: {
                    required: true,
                    integer: true
                },
                field2: {
                    required: true,
                    integer: true
                }
            },
            submitHandler: function (form) { // for demo
                alert('valid form');
                return false;
            }
        });

                $('#go').click(function(){ 

                        if (!$("#myform").validate()) 
                        { 

                            // Not Valid
                            alert('missing some data');
                            return false;

                        } 
                        else 
                        {    

                            <!-- $("#myform").submit() -->
                            alert('all good');
                            return false;

                        }
                });

    });



    </script>


    </head>

    <body>
        <form id="myform">
            <input type="text" name="field1" />
            <br/>
            <input type="text" name="field2" />
            <br/>
            <input id="go" value="GO" type="button" />
        </form> 

    </body>

    </html>

1 Ответ

0 голосов
/ 08 мая 2018

Не «если» .validate() - это объект валидатора и всегда будет true, поскольку он существует.

Используйте .valid() для любого логического тестирования :

$('#go').click(function() { 
    if (! $("#myform").valid()) { ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...