Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Событие keyup (https://javascript.ru/forum/events/14945-sobytie-keyup.html)

aleks_lv 06.02.2011 20:13

Событие keyup
 
Почему этот простой код не работает Opera ,Mozilla ,но работает IE
function elem(){
           var ty=document.getElementById('1');
            var value=ty.getAttribute('value');
        alert(value);
      }

<input type="text" value="привет" id="1" onkeyup="elem()" />

При вводе значения в инпут в опере и мозиле постояно выскакивает 'привет',введеное значение не видно.....В IE нормально

dmitriymar 06.02.2011 20:35

var value=ty.getAttribute('value');
интересная строка сама пео себе
и не стоит называть переменные зарезервированными словами языка

aleks_lv 06.02.2011 20:45

пусть не value ,a там...pvalue...суть не меняется..более конкретный совет есть

Amphiluke 06.02.2011 20:54

Цитата:

Сообщение от dmitriymar
не стоит называть переменные зарезервированными словами языка

Когда это value успело стать зарезервированным словом?

Цитата:

Сообщение от aleks_lv
более конкретный совет есть

Заменить
Цитата:

Сообщение от aleks_lv
var value=ty.getAttribute('value');

на
var value=ty.value;

dmitriymar 06.02.2011 21:00

function elem(){
           var ty=document.getElementById('1');
            var svalue=ty.value;
        alert(svalue);
      }

dmitriymar 06.02.2011 21:03

Amphiluke,
любое слово используемое языком -зарезервированное. и ты никогда не будешь знать выполниться ли код в этом случае или посчитает за синтаксическую ошибку и проигнорирует его. срабатывает только изза того что в компиляторах дуракозащита.но всю дурь не учтёшь

Amphiluke 06.02.2011 21:09

Цитата:

Сообщение от dmitriymar
любое слово используемое языком -зарезервированное.

Дак вот я и спрашиваю, для каких целей оно зарезервировано. Дайте,что-ли, ссылку на спецификацию, в которой написано, что value — зарезервированное слово.


И напишите сюда, чтобы добавили. =))

dmitriymar 06.02.2011 21:11

да.............нет слов.знаток как поступит компилятор......точнее того чего разработчики в них написали и что предусмотрели. отвечу вопросом на вопрос-
есть ссылка где будет написано что document.getElementById(...) нельзя использовать для имён прееменных. или использованию её в качестве имён переменных мешают только символы какие нельзя использовать в именах переменных?если бы можно было и её тоже для имён?

Amphiluke 06.02.2011 21:14

Цитата:

Сообщение от dmitriymar
да.............

<offtop>Очень содержательный ответ.</offtop>

Kolyaj 06.02.2011 22:25

dmitriymar,
ключевые слова языка, их нельзя использовать в качестве имён переменных (но не свойств)
Цитата:

break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof
слова, зарезервированные на будущее, некоторые из этих слов можно использовать, но лучше не надо
Цитата:

abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public
Не говоря уже о том, что DOM (из которого вы взяли value) не является частью языка JavaScript.

monolithed 06.02.2011 23:19

Цитата:

Сообщение от Kolyaj
Не говоря уже о том, что DOM (из которого вы взяли value) не является частью языка JavaScript.

золотые слова :victory:

dmitriymar 07.02.2011 01:30

хорошо зайду по другому. все сталкивались с тем,что раньше работало с изменением версии браузера переставало работать или начинало работать не в полной мере или работало но по перекосяченому? думаю что да.
кто нибудь даст гарантию,что условно завтра эта конструкция
(с выходом новых версий браузеров )не перестанет работать?
var value=ty.value;
??
да и все знают что с кросбраузерностью у языка тяжко.ну и смысл писать то что может перестать работать?
а то что в браузерах не всё гладко работает из того что декларируется? все люди все лепят косяки-даже разработчики браузеров
ну и н.... клепать то что изначально выглядит кривовато?
или сначала создаём трудности а потом их самиже и преодолеваем?

как давно довали поддержку id начинающуюся с цифры? и через сколько после добавления ВСЕ браузеры начали поддерживать? и таких примеров можно привести сотни. когда не работает то что должно и работает то что не должно.....

var value=ty.getAttribute('value');
и
var value=ty.value;

по спецификациям наверное должны работать одинаково?так почему не работают?

Kolyaj 07.02.2011 13:37

Цитата:

Сообщение от dmitriymar
кто нибудь даст гарантию,что условно завтра эта конструкция
(с выходом новых версий браузеров )не перестанет работать?
var value=ty.value;
??

Я даю.

Цитата:

Сообщение от dmitriymar
как давно довали поддержку id начинающуюся с цифры? и через сколько после добавления ВСЕ браузеры начали поддерживать?

Всегда все браузеры поддерживали.

Цитата:

Сообщение от dmitriymar
var value=ty.getAttribute('value');
и
var value=ty.value;

по спецификациям наверное должны работать одинаково?так почему не работают?

Это не должно одинаково работать. Первое -- взятие атрибута, второе -- получение текущего значения. Это разные вещи.

dmitriymar 07.02.2011 13:40

Цитата:

Сообщение от Kolyaj
var value=ty.getAttribute('value');

дак почему в ие у него работает одинаково если не должны по документации?
-это я к тому что иногда работает не согласно документации-расширенно\обрезанно\по перекосяченому....

Kolyaj 07.02.2011 13:55

Цитата:

Сообщение от dmitriymar
дак почему в ие у него работает одинаково если не должны по документации?

Потому что в IE вплоть до 8-й версии язык не JavaScript, а JScript.

http://xpoint.ru/know-how/JavaScript/Atributyi?8

dmitriymar 07.02.2011 14:08

действительно в новых ие уже не работает..

traa 07.02.2011 17:12

dmitriymar,
вам не кажется, что вы не очень хорошо разбираетесь в яваскрипте, чтобы с важным видом и раздутыми щеками выступать на форуме?
Вы и у меня в двух темах попытались проявить свои "знания", после чего быстренько смотались.

dmitriymar 07.02.2011 17:49

traa,
а ты чего клоун влазишь?
ну а с тобой-проверь клоун через текстэрию как инерхтмл получает данные -эт раз
ну а два-после твоего заряда что css к позиционированию элементов никакого отношения не имеет(точнее что позиционирование это не сss)-слов не было
этими своими "знаниями" ты чтоль гордишся?
к твоему сведению существует довольно много "литературы" где средства js и javascript сведены воедино и описывается как javascript с разбивкой в ие следует так в фф так

traa 07.02.2011 18:24

dmitriymar,
вы прекрасно уже показываете в ряде тем, насколько вы хам и не имеете отношения к яваскрипту в принципе.

Что вы какую-то херню несете, какой иннерхтмл, причем он здесь?
Если вы не можете понять даже элементарных вещей, о чем вообще идет разговор, то не оргазмируйте тут своими словесными испражнениями, пожалуйста.

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

Любой адекватный человек, прочев тему, в которой вы проявили свое невежество во всей красе, поймет о чем я говорю. Вы как бредили, так и продолжаете бредить, Шариков.

dmitriymar 07.02.2011 18:31

traa,
ты закончишь когда нибудь свой словесный понос?
Цитата:

Сообщение от traa
"море, - оно такое мокрое"

если эти вещи для тебе очевидные почему ты до сих пор свой код не написал?
чего то ты мне Mаtre сильно напоминаешь -новый ник?

traa 07.02.2011 18:49

dmitriymar,
Цитата:

ты закончишь когда нибудь свой словесный понос?
Вам сложно воспринимать реальность попросту.
Цитата:

если эти вещи для тебе очевидные почему ты до сих пор свой код не написал?
Еще одна безосновательная отрыжка в пустоту. И к чему этот бред?
Цитата:

чего то ты мне Mаtre сильно напоминаешь -новый ник?
А вы напишите модераторам, пусть проверят. Легче хоть станет.

dmitriymar 07.02.2011 18:59

ясно, ник поменял-но как был клоун так и остался

traa 07.02.2011 19:01

dmitriymar,
Как вам будет угодно, добрый волшебник

dmitriymar 07.02.2011 19:03

traa-Matre
а как ты угадал что у меня есть волшебная палочка?ну лад -волшебная палка. только я ,к твоему несчастью,гетеросексуал

Маэстро 08.02.2011 16:34

dmitriymar,
подтверждаю насчёт "зарезервированных слов"...
как то написал код:
var name = lalalala....;

и долго смеялся, почему это во всех броузерах работает... а в Google Chrome - нет!


Часовой пояс GMT +3, время: 21:43.