tinyMCE не работает с плагином проверки jQuery через обновления javascript - PullRequest
1 голос
/ 13 октября 2011

У меня есть Validation, работающий с большой формой (я запускаю ее несколько раз перед Submit, чтобы проверить разделы формы), и редактор tinyMCE, работающий в 1 textarea. Я хочу переместить содержимое iframe tinyMCE в текстовую область до (это ключ здесь - до) кнопки «Отправить», чтобы можно было проверить содержимое в разделе перед «Передать».

Я использовал tinyMCE.triggerSave(); несколькими способами для перемещения содержимого и запуска проверки перед отправкой. Нет работы. Я начинаю полагать, что содержимое tinyMCE не может быть перемещено никаким Javascript, скорее, содержимое перемещается только с помощью кнопки «Отправить», но я не вижу, чтобы это было указано где-либо.

В tinyMCE я пытался onchange_callback: и handle_node_change_callback: запускать функции с помощью triggerSave и других команд сохранения. Я могу проверить содержимое tinyMCE, когда дважды нажму «Отправить» (другие отметили эту особенность), но никак иначе.

Кроме того, когда ошибки исправляются в tinyMCE, проверка не выполняется повторно, пока не будет нажата кнопка «Отправить». Он должен пройти повторную проверку в режиме реального времени, поскольку проверка предназначена для этого.

2 вопроса -

Кто-нибудь знает, как переместить содержимое tinyMCE в текстовую область, не нажимая кнопку Отправить?

Разрешает ли CKEditor обновления, кроме как через Submit, и если да, где учебник или пример?

Вот пример кода, который должен запускаться с помощью утилиты tinyMCE onchange_callback, но срабатывает только после второго нажатия кнопки «Отправить».

function tinyMCESetValue(inst)
{
var content = tinyMCE.activeEditor.getContent();
if (tinyMCE.activeEditor.isDirty()) {tinyMCE.triggerSave(true, true);}
// other save expressions that have been tried - with same results
//$("#selector").val(content);
//$("textarea.tinymce").val(content);
//tinyMCE.triggerSave();
//ed.save();
alert("some change"); //does not fire
}

В ответ на комментарий Тариама, приведенный выше код должен запускаться параметром tinyMCEinit в onchange_callback: tinyMCESetValue ,. У меня также есть следующий код в разделе JS, который делает все остальное правильно. Предупреждение всегда показывает «неопределено». Видите какие-нибудь проблемы? Где еще мне посмотреть / попробовать? Какие тесты я могу сделать - я не получаю полезную информацию от Firebug.

if ($( "#sections" ).accordion( "option", "active" ) == 1)  //if the second Accordion section
{
    var content = tinyMCE.activeEditor.getContent(); //get the content from the tinyMCE iframe
        if (tinyMCE.activeEditor.isDirty()) //if the contents of tinyMCE have changed}
        {tinyMCE.triggerSave(true, true);} //put contents in the textarea
    alert("|" + $("#detailedDescription").val() + "|tinyMCEval");
    if (i == 7) {$("#detailedDescription").rules("add", {validCharsCheck: true});}
}

Ответы [ 2 ]

1 голос
/ 25 февраля 2012

Я нашел решение этой проблемы.
я изменил jquery.validate.js файл.

this.submit(function (event) 
{ 
    if (window.tinyMCE != undefined) 
    { 
        tinyMCE.triggerSave(); 
    }
    .
    .
    .
})

это решение работает только для tinymce .

0 голосов
/ 04 марта 2014

привет, если вы не получаете подтверждение на стороне клиента при отправке формы при использовании TINYMCE у меня есть одно решение, но это не правильный путь, но он работает нормально, вы можете получить все необходимые проверки в форме отправки времени, пожалуйста, проверьте этот код или пример ЭТО СТОРОНА КЛИЕНТА @ Html.LabelFor (model => model.txtAboutCompany, new {@class = "required"}) @ Html.EditorFor (model => model.txtAboutCompany)

ЭТО JQUERY

$("#BusinessProfile").click(function () {
    var aboutC = $("#txtAboutCompany").val()
    var pinfo = $("#txtProductinfo").val();
    if (aboutC == "" && pinfo == "") {
        $("#AC").append("").val("").html("Please enter about company")
        $("#PI").append("").val("").html("Please enter product information")
        $("#bpform").valid();

        return false;
    } else if (aboutC == "") {
        $("#PI").append("").val("").html("")
        $("#AC").append("").val("").html("Please enter about company")
        $("#txtAboutCompany").focus();

        $("#bpform").valid();
        return false;
    } else if (pinfo == "") {
        $("#AC").append("").val("").html("")
        $("#PI").append("").val("").html("Please enter product information")
        $("#txtProductinfo").focus();
        $("#bpform").valid();

        return false;
    }
    else {
        $("#AC").append("").val("").html("");
        $("#PI").append("").val("").html("");
        //return true;
        $("#bpform").validate();
    }
    });

попробуйте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...