Модальные кнопки Summernote, вызывающие отправку формы

В приложении web2py у меня есть форма, которая загружается как компонент и имеет текстовую область, к которой применяется редактор Summernote.

{{=LOAD('editor', 'load_summernote.load', vars = {...}, ajax = True)}}

Группа кнопок Summernote «.note-insert» (ссылка, изображение, видео) открывает модальное окно. При нажатии кнопки «Вставить *» этого модального окна форма отправляется. Мне это кажется крайне нежелательным поведением. Я попытался использовать несколько хакерских решений, чтобы предотвратить отправку формы:

$(document).on('submit', 'form', function(e){
    e.preventDefault();
    return  false;
});

Приведенный выше код не препятствует отправке формы.

Первый вопрос: является ли поведение кнопки «Вставить» в Summernote ожидаемым поведением, или есть вероятность, что на моем сайте есть что-то особенное, что вызывает отправку формы? (Кажется, нет ничего сразу очевидного, что могло бы предложить утвердительный ответ на последнюю часть вопроса.)

Второй вопрос: есть ли предпочтительный способ предотвратить отправку формы этими кнопками «Вставить» без ущерба для их функциональности?


person Boa    schedule 12.12.2016    source источник


Ответы (1)


Возможно, HTML-код, который вы используете для кнопки, неверен. Я предполагаю, что вы используете тег кнопки для кнопки «Вставить». Важно отметить, что поведение тега кнопки по умолчанию — type=submit (неявно). Вы должны добавить атрибут type=button в тег кнопки, чтобы предотвратить отправку по клику. Например:

<button>Insert</button> <!--WILL cause a submit (implicitly type=submit)-->
<button type=button>Insert</button> <!--Will NOT cause a submit-->

Дополнительные сведения см. в этом ответе.

person Himel Das    schedule 03.01.2017