Добавьте метод в jQuery .validate, чтобы проверить, является ли текстовое поле summernote пустым - PullRequest
0 голосов
/ 22 сентября 2018

Я пытаюсь добавить метод в jQuery .validate, чтобы проверить, пуста ли текстовая область Summernote (редактор WYSIWYG), и я не могу заставить метод вызываться (предупреждение, которое я поместил в него, не отображается).В консоли нет ошибок.

Метод:

//Add validation method to check for an empty Award Description
$.validator.addMethod("htmlEditorEmpty", function(value, element) {
    alert("checking");
    return this.optional(element) || value.summernote('isEmpty');
}, "Please enter details");

Этот метод вызывается (другие проверки до и после этой работы):

awardDescription: {
    htmlEditorEmpty: true,
    maxlength: 1500,
},

Проверяет HTML:

<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3">
    <div class="form-group">
        <div>
            <textarea class="summernote" id="awardDescription" name="awardDescription" rows="3"></textarea>
        </div>
    </div>
</div>

Я поместил это в submitHandler:

if ($('#awardDescription').summernote('isEmpty')) {//using id
    alert('contents is empty1');
}

if ($('awardDescription').summernote('isEmpty')) {//using name
    alert('contents is empty2');
}

Первый работает (то есть, отображается только когда пусто), в то время как второй всегда показывает (то есть, дажекогда значение введено).Я включил эту информацию, потому что я считаю, что .validate использует имя, а не идентификатор.Я могу ошибаться.

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Это решение отключает кнопку отправки, когда summernote имеет значение пусто или имеет пробелы .

HTML

<form>
    <textarea class="summernote" name="summernote" id="summernote" cols="100" rows="10"></textarea>
    <button id="btnForm" type="submit" disabled>Publish</button>
</form>

JS

$(document).ready(function () {
    $('[id="summernote"]').summernote({
    }).on('summernote.keyup', function() {

        var text = $("#summernote").summernote("code").replace(/&nbsp;|<\/?[^>]+(>|$)/g, "").trim();

        if (text.length == 0) {
            $("#btnForm").attr("disabled", "disabled");
        } else {
            $("#btnForm").removeAttr("disabled");
        }
    });
});
0 голосов
/ 08 октября 2018

Summernote имеет встроенный тест для этого.Вот код, который я использую:

if ($('#summernote').summernote('isEmpty'))
{
  alert('editor content is empty');
}

Что вы используете и почему срабатывает ваше оповещение.Ваш другой тест не проверяет действительный идентификатор или имя с синтаксисом, который вы используете.Я думаю, что браузер выдаст ошибку или проигнорирует ваш второй тест

Чтобы проверить, используя имя, используйте val () $ ('form [name = "???"] input [name = "??? "]"). вал (),

...