Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.07.2011, 15:54
Интересующийся
Отправить личное сообщение для kingrus Посмотреть профиль Найти все сообщения от kingrus
 
Регистрация: 02.02.2011
Сообщений: 28

Функция на onClick
Добрый день! Столкнулся с проблемой. По всей видимости ее решение очень простое.
Суть: есть форма, теги select и option.
<select>
<option value='first' onClick='abc()'></option>
<option value='second' onClick='abc()'></option>
</select>

function abc(){
alert(this.value);
}


При попытке узнать значение выбранного элемента из функции выдает undefined.

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

<option value='second' onClick='alert(this.value)'>
Покажет "Value"
</option>


Подскажите как передать значение в саму функцию, чтобы это значение в последствии возможно было использовать или сохранить в переменную.
Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 26.07.2011, 16:17
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Само собой, ведь this внутри вызова abc() указывает на window, в внутри обработчика события на текущий элемент. В Вашем случае нужно "прикрепить" текущий объект к функции, например так: abc.call(this)
Ответить с цитированием
  #3 (permalink)  
Старый 26.07.2011, 16:27
Интересующийся
Отправить личное сообщение для kingrus Посмотреть профиль Найти все сообщения от kingrus
 
Регистрация: 02.02.2011
Сообщений: 28

Сообщение от B@rmaley.e><e Посмотреть сообщение
например так: abc.call(this)
А ввиде call, что ,будет выступать? И это выражение в функции нужно записать ?
function abc(){
abc.cell(this);
}
Ответить с цитированием
  #4 (permalink)  
Старый 26.07.2011, 16:55
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от kingrus
function abc(){
abc.cell(this);
}
1. Вы сами видите здесь хоть какой-нибудь смысл?
2. Не cell, а call.
3. Советую почитать: this в деталях, Function.call.
Ответить с цитированием
  #5 (permalink)  
Старый 26.07.2011, 17:01
Интересующийся
Отправить личное сообщение для kingrus Посмотреть профиль Найти все сообщения от kingrus
 
Регистрация: 02.02.2011
Сообщений: 28

спасибо за подсказки. Почитаю, думаю разберусь, направление понял
Ответить с цитированием
  #6 (permalink)  
Старый 26.07.2011, 17:19
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 20.11.2010
Сообщений: 143

<select>
<option value="first" onClick="abc(this.value)"></option>
<option value="second" onClick="abc(this.value)"></option>
</select>


function abc(val)
{
alert(val);
}
__________________

Ответить с цитированием
  #7 (permalink)  
Старый 26.07.2011, 17:24
Интересующийся
Отправить личное сообщение для kingrus Посмотреть профиль Найти все сообщения от kingrus
 
Регистрация: 02.02.2011
Сообщений: 28

Сообщение от B@rmaley.e><e Посмотреть сообщение
2. Не cell, а call.
this в деталях, Function.call.
не знал про метод call, думал свойство какое-то, переменная.
Спасибо, почитал материал.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OnClick ячейки таблицы и ссылки в этой ячейке MasDen Javascript под браузер 2 30.06.2011 10:34
onclick и <object> MCTrane Общие вопросы Javascript 3 23.12.2010 23:33
Функция которая работает на OnLoad не хочет работать на OnClick libinstyle Элементы интерфейса 6 23.03.2010 01:42
Событие onClick avtor01 Events/DOM/Window 3 03.09.2009 18:01
Функция onclick для созданных потомков Groonel Общие вопросы Javascript 6 24.04.2009 18:35