Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FormControllerのmessageプラグインを使った時にFormController.validate()時にエラーが出る #554

Closed
fukudayasuo opened this issue Apr 13, 2016 · 0 comments
Assignees
Labels
bug
Milestone

Comments

@fukudayasuo
Copy link

@fukudayasuo fukudayasuo commented Apr 13, 2016

FormControllerのmessageプラグインを使った時にFormController.validate()を呼んで、結果がvalidである場合にエラーが出ます。

以下再現コード

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <script src="//code.jquery.com/jquery-2.1.1.min.js"></script>

    <link href="/lib/hifive/1.2.2/h5.css" rel="stylesheet">
    <script src="/lib/hifive/1.2.2/ejs-h5mod.js"></script>
    <script src="/lib/hifive/1.2.2/h5.dev.js"></script>

    <script>
        $(function() {
            var $form = $('<form><input type="text" name="hoge" value="abc"></form>');
            $(document.body).append($form);

            var c = h5.core.controller($form, h5.ui.FormController);
            c.readyPromise.done(function() {
                c.addOutput(['message']);
                c.addRule({
                    hoge: {
                        required: true
                    }
                });
                c.validate(); // エラー 

                // invalidな値の場合はエラーにならない(以下はエラーにならない)
                // this.$find('[name=hoge]').val('');
                // c.validate();

            });
        });
    </script>
</head>
<body>
</body>
</html>

以下コンソールログ

[DEBUG]11:9:34,130: local storage supported:true, session storage supported:true
h5.dev.js:2986 [INFO]11:9:34,132: 開発版のhifive(ver.1.2.2)の読み込みが完了しました。リリース時はMinify版(h5.js)を使用してください。
h5.dev.js:2986 [INFO]11:9:34,132: hifive内部で使用されるjQueryのバージョン:2.1.1
h5.dev.js:2989 [DEBUG]11:9:34,136: コントローラ"h5.ui.FormController"の初期化を開始しました。
h5.dev.js:2986 [INFO]11:9:34,216: コントローラ"h5.ui.FormController"の初期化が正常に完了しました。
h5.dev.js:2989 [DEBUG]11:9:34,217: コントローラ"h5.ui.validation.Message"の初期化を開始しました。
h5.dev.js:2989 [DEBUG]11:9:34,218: コントローラ"h5.ui.validation.MessageOutputController"の初期化を開始しました。
h5.dev.js:2989 [DEBUG]11:9:34,222: -----------------------------------------
h5.dev.js:2989 [DEBUG]11:9:34,222: ・validateするデータ
h5.dev.js:3047 [DEBUG]11:9:34,223:  Object {hoge: "abc"}
h5.dev.js:2989 [DEBUG]11:9:34,225: ・validate対象のプロパティ:undefined
h5.dev.js:2989 [DEBUG]11:9:34,225: ・validate結果
h5.dev.js:3047 [DEBUG]11:9:34,225:  ValidationResult {isValid: true, validProperties: Array[1], invalidProperties: Array[0], validatingProperties: Array[0], invalidReason: null…}
h5.dev.js:2989 [DEBUG]11:9:34,226: 同期
h5.dev.js:2989 [DEBUG]11:9:34,226: -----------------------------------------
h5.dev.js:22449 Uncaught TypeError: Cannot read property 'hoge' of null
@simdy simdy added the bug label Apr 18, 2016
@simdy simdy added this to the upcoming milestone Apr 18, 2016
@simdy simdy self-assigned this Apr 18, 2016
tkmHashi pushed a commit that referenced this issue Jul 26, 2016
FormControllerのmessageプラグインを使った時にFormController.validate()時にエラーが出ないように修正。
validationResult.invalidReasonがnullではない場合だけvalidationResult.invalidReasonの対象プロパティを取得するように変更。
tkmHashi pushed a commit that referenced this issue Jul 27, 2016
getMessageByValidationResultについて全てのプロパティがエラーでない場合はnullを返すことを確認するテストケースを追加
@simdy simdy modified the milestones: upcoming, v1.3.2 Apr 9, 2018
@simdy simdy closed this May 24, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.