Отправляет email-рассылки с помощью сервиса Sendsay

[TC] JQuery: простейшая вещь, а не работает...

Vande omentaina, Tiflocomp!
Народ, нужно в зависимости от состояния флажка сменить текстовому полю
тип с Text на Password.
Вот код:
$("#showpass").click (function (event) {
if ($(this).checked) {
$("#upass").attr("type", "text");
} else {
$("#upass").attr("type", "password");
}
});
Что не так? Такое ощущение, что он вообще не заходит в ветку ифа "если
флажок отмечен". Тестовые алёрты всё время выдают "Not checked", при
каждом щелчке по флажку.
В чём тут дело?
Спасибо!

Ответить   "Anarendil E. M. Elensule" Mon, 23 Nov 2009 02:54:47 +0200 (#944725)

 

Ответы:

Доброго времени суток, уважаемая рассылка и Anarendil.

Monday, November 23, 2009, 2:54:47 AM, you wrote:

Такой вариант вроде работает:
$('#showpass').click(function()
{
if ($(this).attr('checked'))
{
$('#upass').replaceWith('<input type = "text" id = "upass" value = "text"/>');
}
else
{
$('#upass').replaceWith('<input type = "password" id = "upass" value = "pass"/>');
}
});

п.с. PC-курсор не фиксирует изменения поля инпут, а если навести на
него Джос-курсор, то изменения читаются.
Удачи!

Ответить   Олег Tue, 24 Nov 2009 00:14:08 +0200 (#945434)

 

Vande omentaina, Олег!

Гм... интересно. А мне сказали на форумах, что в IE вообще нельзя
изменить тип инпута, уже внесённого в дерево объектов.
P.S. А вы работаете с JQuery? А то я только осваиваюсь, у меня
вопросов много... А хорошие мейл-листы специальной направленности
давно померли...

Ответить   "Anarendil E. M. Elensule" Tue, 24 Nov 2009 00:44:15 +0200 (#945442)

 

Anarendil E. M. Elensule:

А эти?

http://docs.jquery.com/Discussion#Mailing_Lists

Ответить   Дмитрий Падучих Tue, 24 Nov 2009 10:11:52 +0500 (#945544)

 

Vande omentaina, Дмитрий!

Вернулся мне почему-то отлуп с английского листа... типа нет такой
группы.

Ответить   "Anarendil E. M. Elensule" Tue, 24 Nov 2009 14:10:20 +0200 (#945822)

 

Anarendil E. M. Elensule:

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

mailto:jquery-en+subscri***@g*****.com

И подтвердив свою подписку также по почте. Письма из рассылки приходят.
Веб-интерфейсом Google я ни для подписки, ни для подтверждения не
пользовался.

Ответить   Дмитрий Падучих Tue, 24 Nov 2009 18:08:15 +0500 (#945844)

 

Приветствую всех.

Нельзя.
Но Олег предлагает менять именно элемент (т.е. модифицировать DOM), а не атрибут
элемента.
Кстати, через внешний <div> и innerHTML то же самое можно сделать и без jQuery.
Обратите внимание, что конструкция типа:
$('#upass').attr('type','password');
будет генерировать исключение даже в FireFox, в то время как
document.getElementById('upass').type=password';
выполняется в этом браузере без проблем.
Дело в том, что jQuery, наверное, в целях единообразия, блокирует такую возможность
для всех браузеров (именно jQuery возбуждает исключение для вышеописанного случая),
см. исходный код:
// We can't allow the type property to be changed (since it causes problems
in IE)
if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode
)
throw "type property can't be changed";

P.S. Употребление в пользовательском коде '$' вместо 'jQuery' -- противоречит
спецификации ecmascript (правда, требования к употреблению нечитаемых идентификаторов
носят рекомендательный характер).

Успехов. Анатолий.

Ответить   "i_chay" Tue, 24 Nov 2009 09:49:02 +0400 (#945559)

 

Доброго времени суток, уважаемая рассылка и Anarendil.

Tuesday, November 24, 2009, 12:44:15 AM, you wrote:

Верно! А в том скрипте, который я вам отправил тип инпута и не меняется. Там
переписывается весь тэг инпут.

Я тоже в jQuery новичек. Но вроде что-то уже стало получаться. :-)
Будут вопросы - пишите!

Ответить   Олег Tue, 24 Nov 2009 11:46:26 +0200 (#945693)