Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Функция на onClick (https://javascript.ru/forum/events/19117-funkciya-na-onclick.html)

kingrus 26.07.2011 15:54

Функция на 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>


Подскажите как передать значение в саму функцию, чтобы это значение в последствии возможно было использовать или сохранить в переменную.
Заранее спасибо.

B@rmaley.e><e 26.07.2011 16:17

Само собой, ведь this внутри вызова abc() указывает на window, в внутри обработчика события на текущий элемент. В Вашем случае нужно "прикрепить" текущий объект к функции, например так: abc.call(this)

kingrus 26.07.2011 16:27

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 115504)
например так: abc.call(this)

А ввиде call, что ,будет выступать? И это выражение в функции нужно записать ?
function abc(){
abc.cell(this);
}

B@rmaley.e><e 26.07.2011 16:55

Цитата:

Сообщение от kingrus
function abc(){
abc.cell(this);
}

1. Вы сами видите здесь хоть какой-нибудь смысл?
2. Не cell, а call.
3. Советую почитать: this в деталях, Function.call.

kingrus 26.07.2011 17:01

спасибо за подсказки. Почитаю, думаю разберусь, направление понял

Slavenin 26.07.2011 17:19

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


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

kingrus 26.07.2011 17:24

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 115514)
2. Не cell, а call.
this в деталях, Function.call.

не знал про метод call, думал свойство какое-то, переменная.
Спасибо, почитал материал.


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