0

ajax 呼び出しを使用してサーブレットに送信するフォームがあります。問題は、ボタンを使用してフォームを送信しているため、検証できないことです。このリンクに出くわしましたが、 ボタンのクリック時に jQuery フォームの検証の問題の解決策を見つけることができません

私のhtmlコードは次のとおりです。

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

<style type="text/css">
    <%@include file="/formsub/formstyle.css" %>
    </style>
<script>

$(document).ready(function(){
    $( ".datepicker" ).datepicker({

          altFormat: 'yyyy-mm-dd'       
    });



    var form = $('#form1');
    $(".submit").click(function(){
        alert("in click");
        $(form).validate({
            submitHandler: function(form) {

                $.get(form.attr('action'),$(form).serialize(),function(data,status){

         $('#json').val(" Firstname is "+data.firstname 
               +"\n Lastname is "+data.lastname

               +"\n You are a " +data.sex
               +"\n Your interests are " +data.interest
               +"\n Date of birth " +data.datepicker
               +"\n Your ipaddress " +data.userIpAddress    )
                });
            }   
        });
       });
     });
</script>

</head>

クリック機能が呼び出されていますが、検証は行われていません。ページを更新したくないので、ボタンを使用しています。どんな助けでも大歓迎です、前もって感謝します

4

1 に答える 1

0

提出物に含めたのとまったく同じリンクのように

ハンドラー内clickでの間違いは.validate()、プラグインを再初期化するだけで、form.

したがって、この呼び出し:

$(form).validate( ...

ハンドラーの外側に配置する必要があり、clickハンドラー内で行う呼び出しは、検証が行われた後に呼び出される$.get内に再配置する必要があります。.submit(function () {... })

これは、フィドルなしであなたに言えることです。

于 2013-08-25T20:32:11.300 に答える