|
|
|
| Здравствуйте, почему то при выбоер варианта select, всегда выдаётся только самый последний вариант
---
<html>
<script>
function uu()
{
if (document.forms.y.t.value='1')
{
document.getElementById('gt').firstChild.data="1";
}
if (document.forms.y.t.value='2')
{
document.getElementById('gt').firstChild.data="2";
}
if (document.forms.y.t.value='3')
{
document.getElementById('gt').firstChild.data="3";
}
if (document.forms.y.t.value='4')
{
document.getElementById('gt').firstChild.data="4";
}
}
</script>
<form name=y id=y>
<select name=t id=t onchange=uu();>
<option value='1'>qqq1</option>
<option value='2'>qqq2</option>
<option value='3'>qqq3</option>
<option value='4'>qqq4</option>
</select>
</form>
<br>
<b id=gt>5</b>
</html> | |
|
|
|
|
|
|
|
для: vasvas2
(07.10.2008 в 22:25)
| | Не волнуйтесь, Вы допустили одну из самых распространённых ошибок: оператор сравнения в JS это ==, а не =. В Вашей же функции происходит пять переприсваиваний значения document.forms.y.t.value, эффект последнего из которых мы наблюдаем в браузере.
Таким образом, просто замените в условиях if знак равно на двойное равно.
З.Ы. Не обижайтесь, но если Вам надо сделать переключатель значений, то Ваша реализация оставляет желать лучшего. | |
|
|
|
|
|
|
|
для: Nytrogen
(07.10.2008 в 22:48)
| | Спасибо большое, да я знаю, что данный код оставляет желать лучшего, но зато сам написал.(хоть и с ошибками)
Учусь.
Спасибо ещё раз. | |
|
|
|
|
|
|
|
для: Nytrogen
(07.10.2008 в 22:48)
| | Извините, можете ли Вы предложить Вашу реализацию? | |
|
|
|
|
|
|
|
для: vasvas2
(07.10.2008 в 22:58)
| | Все мы были новичками... То, что Вы написали это сами - это уже большой подвиг.
Итак, что касается структуры Вашего кода...
Во-первых, соблюдайте отступы во вложенных блоках. Это не потому, что я так хочу, а потому что Вам от этого будет гораздо проще и нагляднее читать и редактировать Ваш код. Разработайте себе своего рода рефлекс: как только ставите фигурную скобку и нажимаете Enter, ставьте два пробела, а потом пишите новую строку кода. Вот так:
function myFunction() {
if (a == 1) {
alert("a = 1!");
}
}
|
Во-вторых, когда Вы принимаете решение использовать конструкцию IF, всегда думайте как человек, а не как компьютер, то есть вот что я имею в виду: Представьте, что Вы должны найти ключ от двери в большой связке. Вот вы берёте один, проверяете, ищите дальше. При поиске Вы не проверяете уже опробованные ключи. Как только Вы нашли искомый ключ, Вы останавливаетесь.
То же самое и при проверке условий. Проверяйте условие, только если все остальные условия не верны:
if (a == 1) {
alert('Привет!');
} else if (a == 2) {
alert('Здравствуйте!');
} else {
alert('Милости просим!');
}
|
В-третьих, такие однотипные проверки условий как у Вас можно заменить упрощённым блоком switch case:
function uu() {
var num;
switch(document.forms.y.t.value) {
case '1' : num = '1'; break;
case '2' : num = '2'; break;
case '3' : num = '3'; break;
case '4' : num = '4'; break;
case '5' : num = '5'; break;
}
document.getElementById('gt').firstChild.data = num;
}
|
В-четвёртых, раз мы пошли на упрощение, то можно написать совсем просто и не мудрить:
<html>
<script>
function uu() {
document.getElementById('gt').firstChild.data = document.forms.y.t.value;
}
</script>
<form name=y id=y>
<select name=t id=t onchange=uu();>
<option value='1'>qqq1</option>
<option value='2'>qqq2</option>
<option value='3'>qqq3</option>
<option value='4'>qqq4</option>
</select>
</form>
<br>
<b id=gt>5</b>
</html>
|
В-пятых, называйте переменные и функции более описательно, что поможет Вам легче ориентироваться в коде.
З.Ы. Не считайте меня психом, что я столько накатал, просто делать нечего =)))
Удачи в освоении JavaScript! | |
|
|
|
|
|
|
|
для: Nytrogen
(07.10.2008 в 23:24)
| | Спасибо большое, очень благодарен Вам!!! | |
|
|
|