Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как вернуть значение change (https://javascript.ru/forum/jquery/41476-kak-vernut-znachenie-change.html)

Hol1killer 15.09.2013 21:49

Как вернуть значение change
 
Добрый вечер.

Не могу вернуть значение из change()


Есть кусок кода

$("#selected_mode").change( function() {var mode = $(this).val();});


Как можно вернуть mode из change()

Надеюсь понятно объяснил. Спасибо

danik.js 15.09.2013 22:10

Цитата:

Сообщение от Hol1killer
Надеюсь понятно объяснил

Нет. Надеюсь понятно объяснил?

Tek 16.09.2013 12:44

объявляй mode выше и будет тебе счастье.

danik.js 16.09.2013 12:55

Кому вернуть? Куда вернуть? Надеюсь понятно спросил?

Hol1killer 17.09.2013 19:23

У меня mode уже определен выше в событии ready

Мне нужно что бы mode обновлялся когда выбирали новое значение из списка. Но сам mode будет использоваться дальше по коду не в этом событии. Всем спасибо.

Яростный Меч 17.09.2013 19:55

Hol1killer,

убери var из приведенного кода

Hol1killer 19.09.2013 19:35

Не работает, так вроде же mode уничтожится после выполнения события change() или нет?

Мне нужно выбранное значение из списка select дальше по коду использовать

рони 19.09.2013 19:40

Hol1killer,
var mode;
$("#selected_mode").change( function() {mode = $(this).val();});

Hol1killer 29.09.2013 14:42

Цитата:

Сообщение от рони (Сообщение 272920)
Hol1killer,
var mode;
$("#selected_mode").change( function() {mode = $(this).val();});

Не работает.

Объясню подробнее

var mode;
	
$("select[name='obj']").change( function() {
   mode = $(this).val();
});
	
$("#m-obj").attr("value", mode);


#m-obj - это текстовое поле с таким id.

ksa 29.09.2013 14:45

Цитата:

Сообщение от Hol1killer
Не работает.

Чем быть таким капризулей, лучше бы тестовый пример полный сделал... :D

ksa 29.09.2013 14:48

Цитата:

Сообщение от Hol1killer (Сообщение 274195)
var mode;
$("select[name='obj']").change( function() {
   mode = $(this).val();
});
$("#m-obj").attr("value", mode);

Какой-то супнабор с использованием жиКвери... :D

mode = $(this).val();

равно
mode = this.value;


$("#m-obj").attr("value", mode);

равно
$("#m-obj").val(mode);

Hol1killer 29.09.2013 14:51

Цитата:

Сообщение от ksa
Чем быть таким капризулей, лучше бы тестовый пример полный сделал..

Ой извините, да забыл

Вот пример

http://jsfiddle.net/SaxXp/

нужно что бы при изменении списка значении попадало в текстовое поле m-obj

ksa 29.09.2013 16:50

Цитата:

Сообщение от Hol1killer
Вот пример
http://jsfiddle.net/SaxXp/
нужно что бы при изменении списка значении попадало в текстовое поле m-obj

Это элементарно, Ватсон! (с) :D

http://jsfiddle.net/SaxXp/3/

Hol1killer 29.09.2013 17:24

Цитата:

Сообщение от ksa
Это элементарно, Ватсон! (с)

http://jsfiddle.net/SaxXp/3/

Спасибо.

А возможно ли сохранить значение в переменную mode и дальше ее потом использовать и что бы она обновлялась по событию change()

ksa 29.09.2013 17:53

Цитата:

Сообщение от Hol1killer
возможно ли сохранить значение в переменную mode и дальше ее потом использовать и что бы она обновлялась по событию change()

Зачем тебе еще одна переменная? :blink:
У тебя их и так уже две. Селект и инпут...

Hol1killer 29.09.2013 18:02

Да не ты не понял.


Вот с моим кодом http://jsfiddle.net/SaxXp/ можно что-то сделать, что бы в mode - было значение select списка. И что бы его можно потом было использовать и если вдруг был вызван change() то в mode было бы выбранное значение. Это чисто для себя интересуюсь :)

А так большое спасибо, а то только учусь

ksa 29.09.2013 21:15

Цитата:

Сообщение от Hol1killer
Вот с моим кодом http://jsfiddle.net/SaxXp/ можно что-то сделать, что бы в mode - было значение select списка.
...
Это чисто для себя интересуюсь

Так оно там и будет... Но только после срабатывания события change(). :)

Просто ты для этого неправильно написал т.с. алгоритм...

Hol1killer 30.09.2013 03:30

Цитата:

Сообщение от ksa
Так оно там и будет... Но только после срабатывания события change().

Просто ты для этого неправильно написал т.с. алгоритм...

А почему тогда в поле m-ojb не попадает значение выбранное из выпадающего списка ? К примеру я выбираю АЗС - срабатывает событие change() но в текстовое поле же не вставляется АЗС, значит переменная mode - пустая и она уничтожается после события change() а я хочу ее дальше использовать в глобальной области видимости.

ksa 30.09.2013 08:37

Цитата:

Сообщение от Hol1killer
А почему тогда в поле m-ojb не попадает значение выбранное из выпадающего списка ?

Твой алгоритм этого непредполагает. :D

Цитата:

Сообщение от Hol1killer
К примеру я выбираю АЗС - срабатывает событие change() но в текстовое поле же не вставляется АЗС, значит переменная mode - пустая и она уничтожается после события change()

Вкорне неверное предположение... :nono:

ksa 30.09.2013 08:43

Hol1killer, вот тебе некая иллюстрация того, что ты ошибаешся.

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
var mode;
$(function (){	
	$("select[name='obj']").change( function() {
		mode = $(this).val();
	});
	$('button').click(function (){
		alert(mode);
	});
});
</script>
</head>
<body>
<body>
<div class="field">
	<label for="obj">Выберите тип объекта:</label>
	<select name="obj">
		<option value="Автосервис">Автосервис</option>
		<option value="АЭС">АЗС</option>
		<option value="Аптека">Аптека</option>
	</select>
</div>
<br />
<br />
<button>Mode</button>
</body>
</body>
</html>


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