Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Значение переменной не может привысить 30 и опуститься ниже 1-го, как сделать? (https://javascript.ru/forum/events/10622-znachenie-peremennojj-ne-mozhet-privysit-30-i-opustitsya-nizhe-1-go-kak-sdelat.html)

libinstyle 12.07.2010 21:49

Значение переменной не может привысить 30 и опуститься ниже 1-го, как сделать?
 
Здравствуйте!
Есть <input type="text" value="1" />

и внизу две кнопки, одна "вперед", другая "назад".
Мне надо сделать. чтоб когда я нажимаю вперед, значение текстового поля увеличивалось на 1. И так до 30-ти, то есть когда значение достигло 30, можешь жать до посинения, больше 30 оно не станет. Когда жмешь на "назад", значение соответственно уменьшается, но опять же не меньше единицы.

Написал скрипт, с кучей if-ов, получилось достаточно длинно. Чую, что это делается как то проще в три строчки. Подскажите пожалуйста, как осуществить такую вещь.

Заранее спасибо

exec 12.07.2010 22:03

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<title>
			+-
		</title>
		<script type="text/javascript">
			function v( step, lim, a ) {
				var e = document.getElementById( 'txt' );
				if ( a ? e.value < lim : e.value > lim ) {
					e.value = +e.value + step;
				}
			}
		</script>
	</head>
	<body>
		<input type="text" id="txt" value="10" />
		<input type="button" value="+" onclick="v( 1, 30, true );" />
		<input type="button" value="-" onclick="v( -1, 1, false );" />
	</body>
</html>

libinstyle 12.07.2010 22:05

Шикарно! Спасибо!!

Octane 12.07.2010 23:27

libinstyle, не дублируйте темы.


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