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.


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