Текст <textarea>стирается в Safari при использовании jQuery keyup - PullRequest
1 голос
/ 07 июля 2011

Safari на iPad не поддерживает contenteditable, и у меня нет контроля над созданным HTMl. Это для блога, и область по умолчанию для вставки текста - это div с атрибутом contenteditable. Я использую jQuery, чтобы найти этот div, спрятать его, добавить текстовую область, и при событии keyup для новой текстовой области поместить текст в скрытый div, а затем я могу нажать кнопку Сохранить, и все будет вставлено правильно.

Сценарий, приведенный ниже, отлично работает в IE, Chrome и FireFox, но не в Safari (iPad или PC), почему это так и каково решение?

$(document).ready(function () {
    $('#defaultBox').parent().hide();

    $('.ms-standardheader').each(function () {
        var test = $(this).html();
        if (test.indexOf("Body") != -1) {
            $(this).parent().parent().after('<tr><td></td><td><textarea id="newBox" style="width:98%; height: 100%;"></textarea></td></tr>');
        }
    });

    $('#newBox').keyup(function () {
        var text = $(this).val();
        $('#defaultBox').text(text);
    });
});

Редактировать: в Safari происходит то, что, как только я прекращаю печатать, текст немедленно стирается в текстовой области, которую я набираю. Текст не удаляется из div, но трудно увидеть, что вы написали, так как скрытый.

простая скрипка, которая работает в Safari http://jsfiddle.net/Va4L2/

Я пытался с keydown, но без разницы. Заранее спасибо.

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