Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помощь с формами (https://javascript.ru/forum/misc/8976-pomoshh-s-formami.html)

MegaGoblin 23.04.2010 01:32

Помощь с формами
 
дано:

<form>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select></form>

ниже другое
<input type="text" value="ххх"> ,где ххх-любое численное значение

1) По клику на опцию "1" должны увеличить значение "value" на единицу.
2) Затем по клику на любую другую опцию мы должны уменьшить значение "value" на единицу. Начальное значение "value" мы не знаем.

Как сделать пункт 1, я знаю, не могу разобраться с 2.

Может вы мне поможете?)) За ранее спасибо.
Надеюсь ясно изложил=)

MegaGoblin 23.04.2010 14:04

j=0;

<form>
<select onChange="javascript:e=true; i=0; while(e==true) {if(options[i].selected) {e=false; break;} i++;} a=i-j; temp=document.getElementById('id').value; parseInt(temp,10); temp+=a; document.getElementById('id').value=temp;" >
<option onClick="javascript: j=0;">1</option>
<option onClick="javascript: j=1;">2</option>
<option onClick="javascript: j=2;">3</option>
<option onClick="javascript: j=3;">4</option>
<option onClick="javascript: j=4;">5</option>
<option onClick="javascript: j=5;">6</option>
<option onClick="javascript: j=6;">7</option>
</select></form>

<form><input type="text" id="id" value="0" readonly ></form>


у меня значение в окошке инпут остаётся строкой, и все прибавляния, да отнимания не изменяются значение, а просто дописываются справа...

в чем проблема тут?)

SkyLight 23.04.2010 14:41

Зачем весь тот код, кто у вас написан? Покрасьте его в зеленый и выкиньте в траву, чтобы никто не нашел... И почему у вас селект и текстовое поле в разных формах?

<select id="select" onchange="calc(this)">
	<option value="1">1</option>
	<option value="2">2</option>
	<option value="3">3</option>
</select>
<input type="text" id="text" value="100" />

<script type="text/javascript">
function calc(_) {
	var text = document.getElementById('text');
	text.value = parseInt(text.value) + parseInt(_.options[_.selectedIndex].value == 1 ? 1 : -1);
}
</script>

MegaGoblin 24.04.2010 16:08

SkyLight,
Я язык только учу, пишу как умею=)
В разных формах, т.к. между ними кучу другого кода)
Мне надо , что если прыгаешь с 1-ого на 3-ий пункт, то уменьшение идет на 2, а не на один.
Для этого мне надо получить значение того оптиона, который был до изменения. Можно ли такое сделать?

Спасибо за помощь=)

MegaGoblin 24.04.2010 17:21

SkyLight,
Еще раз спасибо за код, дальше я уже сам разобрался.


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