3

ブートストラップ バリデータ プラグインを使用してフォーム クライアント側を検証していますが、summernote テキストエリアを再検証するときに失敗するようです。初めて検証しますが、テキストが更新されると、検証は更新されません。

検証は次のとおりです(他の検証フィールドを省略しています

function validateEditor() {
    // Revalidate the content when its value is changed by Summernote
    $('#application-form').bootstrapValidator('revalidateField', 'application'));
};

$('.application-form')
    .bootstrapValidator({
        excluded: [':disabled'],
        fields: {
            application: {
                validators: {
                    callback: {
                        message: 'Please do not leave this blank.',
                        callback: function(value, validator) {
                            var code = $('[name="application"]').code();
                            // <p><br></p> is code generated by Summernote for empty content
                            return (code !== '' && code !== '<p><br></p>');
                        }
                    }
                }
            }
        }
    }).on('success.form.bv', function(e) {

        e.preventDefault();
        console.log('Form successfully validated.');


    })
    .find('[name="application"]')
        .summernote({
            height: 400,
            onkeyup: function() {

                validateEditor(); // Revalidate form onkeyup

            },
            onpaste: function() {

                validateEditor(); // Revalidate form on paste

            },

        });

これがマークアップです(これも他のフィールドから切り取ったものです

<div class="form-group">        

    <textarea name="application"></textarea>

</div>

これは大きな問題です。最初にテキストエリアを空白のままにすると、ユーザーがエラーを修正したときに検証が更新されないため、フォームを再送信できないためです。

4

1 に答える 1

-1

私は同じ問題を抱えていましたが、非常によく似たプラグインである FormValidation.io を使用していました。

解決策:私のテキストエリアにはrequired属性がありました。私はそれを削除し、問題を解決しました。

さて、これがあなたの問題に対する直接的な解決策ではない場合、本当に申し訳ありません。あなたのコードには明らかにrequired属性がありませんが、他の人と共有したいと思っただけです。これは、この問題に関する最も関連性の高い投稿です。

それだけです。

于 2015-04-08T09:44:14.657 に答える