IE6 JavaScript Issue - невозможно ввести текст в поля - PullRequest
0 голосов
/ 28 июля 2011

Я кодирую запасной вариант для браузеров без поддержки атрибута placeholder.То, что я придумал, прекрасно работает во всех браузерах, кроме IE6.

Проблема заключается в следующем: после фокусировки любого из двух полей текст-заполнитель исчезает, как и ожидалось, но Я не могу набратьили вставьте любой текст в поля! Иногда я получаю сообщение «Ошибка 84 - Неопределенная ошибка», но большую часть времени ошибки вообще не возникает.

Я загрузил проблемный код в него.простейшая форма на http://jsfiddle.net/CMWHx/ (код также ниже)

Это действительно сводит меня с ума, и я начинаю думать, что моя копия IE6 хитрая (это MultipleIE установить), поэтому я был бы признателен, если бы кто-либо из вас с копиями IE6 смог быстро проверить ссылку выше и подтвердить, что вы испытываете ту же проблему, что и я.

Спасибозаранее:)

HTML

<input id="email_input" type="email" placeholder="Email" required="required" />
<input id="password_input" type="password" placeholder="Password" required="required" />

JavaScript (jQuery 1.6.2)

$("#email_input").val("Email").focus(function() {
    if ($(this).val() == "Email")
    {
        $(this).val("");
    }
}).blur(function() {
    if ($(this).val() == "")
    {
        $(this).val("Email");
    }
});

$("#password_input").hide().after("<input id=\"password_placeholder\" value=\"Password\" />").blur(function() {
    if ($(this).val() == "")
    {
        $(this).hide();
        $("#password_placeholder").show();
    }
});
$("#password_placeholder").focus(function() {
    $(this).hide();
    $("#password_input").show().focus();
});

Ответы [ 4 ]

1 голос
/ 28 июля 2011

Буду признателен, если кто-либо из вас с копиями IE6 сможет быстро проверить ссылку выше и подтвердить, что у вас возникла та же проблема, что и у меня.

Я могу ввести поля в IE6. Поддельные заполнители исчезают, и то, что я печатаю, отображается как при фокусировке с помощью мыши, так и при нажатии на клавиатуре.

0 голосов
/ 28 июля 2011

Не имеет отношения к вашей проблеме, но в качестве подсказки вы можете сделать это, задав для входа значение по умолчанию, а затем проверив текущее значение по умолчанию, например,

<input value="email" 
 onfocus="if (this.value == this.defaultValue) this.value = '';"
 onblur="if (this.value == '')  this.value = this.defaultValue;"
 ... >

Конечно, вы можете реализовать его, однаковам нравится, выше только показывает стратегию.

0 голосов
/ 28 июля 2011

Я проверил это в IETester под IE6, и, похоже, он работает правильно. Значения в полях были сохранены после щелчка назад и вперед, и я смог ввести их.

0 голосов
/ 28 июля 2011

Я видел проблему, аналогичную той, что вы описали в виртуальной машине Windows 7, работающей под управлением IE6 через старые изолированные браузеры Xenocode (включая ошибку 84 при загрузке страницы).с собственным, никогда не обновляемым IE6, и может загружать вашу скрипку без ошибок, и код работает как задумано.

Итак, я думаю, что вы в порядке здесь.

...