2

フォームを検証するために有効性プラグインを使用しています。正常に動作していますが、次のように有効性関数が成功した場合、コールバック関数を実行することは可能ですか?

$("form").validity(function(){
    $("#place").require().range(3, 50);
    $("#location").require().greaterThan(4) 
}, function(){ /* Here to put the call back code */ });

フォームの検証が成功した場合にコードを実行したいので、任意のアイデアをいただければ幸いです

4

4 に答える 4

0

validate.start/validate.endメソッドを使用できます-> http://validity.thatscaptaintoyou.com/Demos/index.htm#UsingValidityWithAjax

これは次のようになります(テストされていません!):

function validateMyAjaxInputs() {
    $.validity.start();
     $("#place").require().range(3, 50);
    $("#location").require().greaterThan(4) 
    var result = $.validity.end();
    return result.valid;
}

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

    if (validateMyAjaxInputs()) {
        // Do ajax request here
    }
});
于 2011-09-26T09:24:30.803 に答える
0

ドキュメントによると、それは簡単には不可能です。

ただし、コールバックを実行するカスタム「出力モード」を作成できる場合があります: http://validity.thatscaptaintoyou.com/Demos/index.htm#CustomOutputMode

于 2011-09-26T09:12:42.160 に答える
0

さて、有効性はプラグ可能な「出力モジュール」をサポートしています。

これは、コールバック関数を呼び出すもの (確かにハックでテストされていないもの) です。コードを jquery.validity.outputs.js に追加するか、有効後にロードする独自のファイルに配置するだけです。

(function($) {
    $.validity.outputs.callback = {
        start:function() {
            buffer = [];
        },

        end:function(results) {
            $.validity.settings.callback(results);
        },

        raise:function($obj, msg) {
            buffer.push(msg);
        },

        raiseAggregate:function($obj, msg) {
            this.raise($obj, msg);
        },

        container:function() {}
    };
})(jQuery);

使用法:

$.validity.setup({
    outputMode:"callback",
    callback:function(){ /* your callback */ }
});

$("form").validity(function(){
    $("#place").require().range(3, 50);
    $("#location").require().greaterThan(4) 
});
于 2011-09-26T09:25:57.453 に答える
0

通常、この種のことは次のように行うことができます。

var IsValid = function(){
 $.validity.start();
 $("#place").require().range(3, 50);
 $("#location").require().greaterThan(4) 
 var result = $.validity.end();
 return result;
}

if (IsValid()) { 
 //You callBack or whatewer
}

もちろん、このパターンを使用すると、より使いやすい js オブジェクトを実装できます。

于 2011-09-26T09:37:02.563 に答える