4

これを理解するのに役立つドキュメントが見つかりません。Parsleyjs が行うのは非常に簡単なことのように思えます。

私が望むのは、フォームが有効になるまで送信ボタンを無効にすることです-これは私のHTMLのデフォルトです: <input id="new-node-form-submit" type="submit" value="done" disabled>

フォームが有効であることを認識したら、送信ボタンから無効化された属性を削除する必要があります。ユーザーがフォームに入力しているときにフォームが再び無効になった場合は、disabled 属性を再度追加する必要があります。

Parsley のドキュメントを使用してリスナーをフォームに追加し、フォームが有効かどうかを確認しようとしていますが、これが機能していないようです。助言がありますか?これは、どういうわけか私が得ていない、本当に簡単なことのようです。

$( '#new-node-form' ).parsley( 'addListener', {
    var isValid = $( '#new-node-form' ).parsley ( 'validate' );
    if(isValid == true) {
        console.log("Your form is valid!");
    }
}
4

2 に答える 2

1

あなたが与えた例では、あなたのJavaScriptは無効です。呼び出しの 2 番目の引数parsley('addListener')は、オブジェクトのプロパティがリスナーを追加するパセリ イベントである JavaScript オブジェクトである必要があります。

var $form = $('#new-node-form');

$form.parsley('addListener', {
    onFieldValidate: function() {
        console.log('form valid=', $form.parsley('isValid'));
    }
});
于 2013-11-04T18:22:15.063 に答える
0

質問は古く、おそらくパセリが API を更新しましたが、うまくいきませんaddListener。別の方法があります。

$(function() {
    window.Parsley.on('field:validate', function() {
        var form = this.$element.closest("form"),
            submit = form.find('.xbtn-submit');
        if (form.parsley().isValid()) {
            submit.removeAttr("disabled");
        } else {
            submit.attr("disabled", "disabled");
        }
    });
});
于 2015-07-28T23:41:37.530 に答える