2013-05-08 2 views
6

Это не вопрос, а ответ, который я хочу поделиться с вами. Я только что потратил более четырех часов, вырывая волосы на что-то, что оказалось ошибкой либо в TinyMCE, либо в Firefox.Форма с tinyMCE textarea с html5 обязательным атрибутом не может отправить

С TinyMCE загружен, если указать HTML5 required атрибут на textarea форма будет просто не подавать в Firefox. Никаких ошибок, ничего в Firebug, просто упорный отказ представить.

Я не знаю, является ли это ошибкой FF или TinyMCE, и все равно. Я просто не хочу, чтобы другие кодеры прошли через обострение, которое я пережил в эти последние часы.

Задать вопрос: Является ли эта ошибка документирована где угодно? Кто-нибудь знает?

Если это неуместное сообщение для переполнения стека, скажите мне, и я удалю его.

ответ

2

Проблемы далека от проблемы с Firefox. Действительно, Chrome и Opera («старая» опера перед «мозгом» была пересажена Chrome), и, вероятно, любой другой современный браузер даст вам ту же головную боль.

В Opera и Chrome есть флаг, требующий, чтобы поле было необходимым (несмотря на то, что в нем есть контент). Chrome достаточно хорошо, чтобы дать вам это сообщение об ошибке в консоли:

An invalid form control with name='<name of textarea>' is not focusable. 

Не слишком удивительно, если учесть, что TinyMCE фактически создает редактируемые div контейнер, скрывая ваш оригинальный textarea. Именно это скрывает textarea (с атрибутом required), который браузер ожидает, что вы предоставите значение.

Более на Github, здесь: https://github.com/tinymce/tinymce/issues/2584, есть предложенное решение, которое выглядит следующим образом:

// fix tinymce bug 
     if($this.is('[required]')){ 
      options.oninit = function(editor){ 
       $this.closest('form').bind('submit, invalid', function(){ 
        editor.save(); 
       }); 
      } 
     } 

Я не проверял этот фрагмент лично, но его изучение может быть в состоянии получить ты, а если вы можете бросить его в нужное место.

Смежные вопросы