2

この小さな HTML ファイルがあります。

<html>
    <head></head>
    <body>
        <form id='MyForm'>
            <input type='text' required />
            <input type='submit' />
        </form>

        <script src="/js/jquery-1.9.0.js"></script>
        <script src="/js/jquery.validate.js"></script>
        <script>
            var validator = $("#MyForm").validate();
            alert(validator.form());
        </script>
    </body>
</html>

これは、予想される動作である「false」で警告します。

問題は、js-test-driver を使用して単体テストを行うときに発生します。

TestCase("MyTests", {

    setUp: function() {
        this.myform = "<form id='MyForm'><input type='text' required /><input type='submit'  /></form>";

        this.validator = $(this.myform).validate();
        jstestdriver.console.log("Does the form validate? " + this.validator.form());
    },

    test_empty: function() {
    },

});

このコードは文字列を返します

フォームは有効ですか? 真実

もちろん、これは私のプロジェクトの簡略化されたバージョンですが、jQuery 検証プラグインが機能していないように見えるため、開発中の検証モジュールを単体テストできないようです。私は何が欠けていますか?

4

3 に答える 3

0

.valid()テストをトリガーし、フォームの有効性を表すブール値を取得する適切な方法を試してください。

<script>
        var validator = $("#MyForm").validate();
        alert($("#MyForm").valid());
</script>

////

this.validator = $(this.myform).validate();
jstestdriver.console.log("Does the form validate? " + $(this.myform).valid());
于 2013-06-24T18:45:22.647 に答える