3

parsley.js について学んだばかりで、すでに knockout.js バインディングで接続されているプロジェクトにその検証機能を追加しようとしています。マークアップは次のとおりです。

<form id="form-add-gift" data-bind="submit: addGift" data-validate="parsley">
    <table class="table table-striped">
        <thead>
            <tr>
                <th>Gift</th><th>Description</th><th>Url</th><th></th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <td><input id="txtName" name="txtName" type="text" data-required="true" data-bind="value: newGift().name" /></td>
                <td><input id="txtDescription" name="txtDescription" type="text" data-bind="value: newGift().description" /></td>
                <td><input id="txtUrl" name="txtUrl" type="text" data-type="url" data-bind="value: newGift().url" /></td>
                <td><button id="btnAdd" name="btnAdd" class="btn" type="submit" data-bind="disable: newGift().name.length > 0">Add gift</button></td>
            </tr>
        </tfoot>
        <tbody data-bind="foreach: gifts">
            <tr>
                <td id="tdName" data-bind="text: name"></td>
                <td id="tdDescription" data-bind="text: description"></td>
                <td id="tdUrl" data-bind="text: url"></td>
                <td><a id="btnRemove" class="btn btn-danger" href="#" data-bind="disabled: $parent.isClaimed, click: $parent.removeGift">Remove</a></td>
            </tr>
        </tbody>
    </table>
</form>

[ギフトを追加] ボタンをクリックすると、knockout.js の addGift() 関数が起動し、その後、parsley.js の検証が行われます。明らかにこれは正しくありません。parseley.js を knockout.js バインディングとうまく連携させる方法はありますか?

4

1 に答える 1

1

私は、 parsley.jsがKnockoutJsと直接連携することを意図しているとは思いませんが、両方をうまく使用することを止めることはできません。

ドキュメント-> Javascript -> フォームをざっと見て、この方法を使用できます。

$('#form').parsley('isValid');

エラー メッセージをトリガーすることなく、カスタム関数内にフォーム検証プロセスを統合する場合に便利です。

アップデート

あなたもこれを試すことができます:

$( '#form' ).parsley( 'validate' );

カスタム関数内にフォーム検証プロセスを統合する場合に便利です。

于 2013-08-15T10:25:25.123 に答える