0

クリック イベントの後にダイアログ内で開くフォームがあります。jquery に気付いていない構文の問題があるかどうか疑問に思っています。サブミット ハンドラー関数のログはどれもログに記録されません。

HTML:

<div id="dialog" title="Thanks For Volunteering">
     <form>
         <p>Please provide a contact number. It will only be shared with the comic</p>
         <input id="number" name="number" type="text" />
         <button id="submit" class="button">Submit</button>    
    </form>   
</div>

JavaScript:

$("form").submit(function(){

        console.log("submit");
        $('#number').validate({
            rules: {
                  number : {
                    required: true
                    //customvalidation: true
                }                                        
            },
            messages: {
                number : {
                    required: "enter a phone number"                   
                }
            },
            submitHandler: function(form) {
                    // do other stuff for a valid form
                    //submit to parse

                    console.log("now validated");
                    var num = $('#number').val();
                    console.log("validated:" +' '+num);
            }     
        });

    });//closes submit

   $.validator.addMethod("customvalidation",
       function(value, element) {
               return (/^[A-Za-z\d=#$%@_]+$/.test(value));
       },
   "Sorry, no special characters allowed");
4

2 に答える 2

2

.validate()メソッドはプラグインの初期化のみです。submit()ハンドラーの中に入ることはありません。フォームにアタッチし、DOM の準備ができたら一度呼び出すだけです。

$(document).ready(function() {
    $('form').validate({
        .....

<button>また、フォームの要素をに変更する必要がありますtype="submit"

デモ: http://jsfiddle.net/GJggc/1/


上記の 2 つの JavaScript の問題と詳細な説明については、前の質問に対するこの回答を参照してください。

https://stackoverflow.com/a/18116262/594235

于 2013-08-25T14:29:12.807 に答える
1

$('#number').validate

バグがあります。検証する必要があるのは FORM 要素であり、フォーム フィールドではありません。

<form id="youform">

....

$('#youform').validate
于 2013-08-25T13:09:29.030 に答える