После завершения срока удаления jQuery textarea - PullRequest
1 голос
/ 10 февраля 2011

Наша компания недавно перешла на использование After Deadline для проверки орфографии. Нам нравится его функциональность, однако нам, по сути, пришлось взломать его, чтобы он работал на каждой странице на сайтах различных клиентов. Короче говоря, я использовал jQuery для проверки правописания на каждой странице.

Проблема в том, что когда вы проверяете орфографию и заканчиваете ее, если вы отправляете ее, она не проходит через поле формы через сообщение. Мы запускаем Coldfusion, и он просто говорит, что переменная формы не существует.

Вот код, это действительно просто:

    function check(elId,linkId)
 {
    AtD.checkTextAreaCrossAJAX( elId , linkId, '<img src="http://www.curricunet.com/images/accept.png" />Finish Checking');
 };

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

Не могли бы вы, ребята, подумать о какой-либо причине, по которой было бы удаление текстовой области из формы?

Вот функция, которая, как мне кажется, нарушает код (по крайней мере, в Firefox и Chrome):

AtD.restoreTextArea = function(id) {
    var options = AtD.textareas[id];

    /* check if we're in the proofreading mode, if not... then retunr */
    if (options == undefined || options['before'] == options['link'].html())
        return;

    /* clear the error HTML out of the preview div */
    AtD.remove(id);

    /* clear the AtD synchronization field */
    jQuery('#AtD_sync_').remove();

    /* swap the preview div for the textarea, notice how I have to restore the appropriate class/id/style attributes */

    var content;

    if (navigator.appName == 'Microsoft Internet Explorer')
        content = jQuery('#' + id).html().replace(/<BR.*?class.*?atd_remove_me.*?>/gi, "\n");
    else
        content = jQuery('#' + id).html();

    jQuery('#' + id).replaceWith( options['node'] );
    jQuery('#' + id).val( content.replace(/\&lt\;/g, '<').replace(/\&gt\;/, '>').replace(/\&amp;/g, '&') );
    jQuery('#' + id).height( options['height'] );

    /* change the link text back to its original label */
    options['link'].html( options['before'] );
};

1 Ответ

0 голосов
/ 10 февраля 2011

При проверке их демонстрации на textareas http://www.polishmywriting.com/atd-jquery/demo2.html

, если вы посмотрите на отрендеренную страницу в Firebug, при нажатии на кнопку проверки орфографии текстовая область заменяется редактируемым div и скрытой формойполе с сгенерированным идентификатором

<div contenteditable="true" id="textInput" style="height: 194px; overflow: auto; white-space: pre-wrap; outline: medium none; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-size: 16px; font-family: times; border: 1px solid rgb(0, 0, 0); text-align: start; margin: 2px; width: 394px; line-height: 20px; letter-spacing: normal; left: auto; right: auto; top: auto; bottom: auto; position: static; padding: 2px;" class="input" spellcheck="false">text</div>

<input type="hidden" id="AtD_sync_" value="The purpoce of a spell checker is to check the text four spelling and typeing errors. The checker finds errors througout the text. When the spell checker finds an questionable word, it highlights it and suggests the mpst likely variants too replace the questionable word. You can select the variant and replace the wrrd or leave the word unanged." name="">

Форма отправляется без повторного нажатия кнопки проверки орфографии (превращения ее обратно в текстовое поле)?Это объясняет, почему поле не существует на POST.Возможно, вам придется смоделировать логику, которая преобразует обратно в обработчик отправки формы

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