Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: select
 
 автор: vasvas2   (07.10.2008 в 22:25)   письмо автору
 
 

Здравствуйте, почему то при выбоер варианта 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>

  Ответить  
 
 автор: Nytrogen   (07.10.2008 в 22:48)   письмо автору
 
   для: vasvas2   (07.10.2008 в 22:25)
 

Не волнуйтесь, Вы допустили одну из самых распространённых ошибок: оператор сравнения в JS это ==, а не =. В Вашей же функции происходит пять переприсваиваний значения document.forms.y.t.value, эффект последнего из которых мы наблюдаем в браузере.
Таким образом, просто замените в условиях if знак равно на двойное равно.

З.Ы. Не обижайтесь, но если Вам надо сделать переключатель значений, то Ваша реализация оставляет желать лучшего.

  Ответить  
 
 автор: vasvas2   (07.10.2008 в 22:56)   письмо автору
 
   для: Nytrogen   (07.10.2008 в 22:48)
 

Спасибо большое, да я знаю, что данный код оставляет желать лучшего, но зато сам написал.(хоть и с ошибками)
Учусь.
Спасибо ещё раз.

  Ответить  
 
 автор: vasvas2   (07.10.2008 в 22:58)   письмо автору
 
   для: Nytrogen   (07.10.2008 в 22:48)
 

Извините, можете ли Вы предложить Вашу реализацию?

  Ответить  
 
 автор: Nytrogen   (07.10.2008 в 23:24)   письмо автору
 
   для: 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!

  Ответить  
 
 автор: vasvas2   (07.10.2008 в 23:29)   письмо автору
 
   для: Nytrogen   (07.10.2008 в 23:24)
 

Спасибо большое, очень благодарен Вам!!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования