Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: что тут не так?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
livote
Отправлено: 29 Октября, 2012 - 19:58:02
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)

[+][+]


CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!-- jq подключено -->
  3. <script>
  4. $(document).ready(function() {
  5.  
  6. $('#votSel').change(function(){
  7.         var vyb = $('#votSel :selected').val();
  8.         var kolsop = $('#kolsop');
  9.         switch(vyb) {  
  10.         case 2:
  11.         kolsop.html('Выбрано 2');
  12.         break;
  13.         case 3:
  14.         kolsop.html('Выбрано 3');
  15.         break;
  16.         case 4:
  17.         kolsop.html('Выбрано 4');      
  18.         break;
  19.         case 5:
  20.         kolsop.html('Выбрано 5');      
  21.         break;
  22.        
  23.         }
  24.         });
  25.  
  26.  
  27. });
  28.  
  29. </script>
  30. <form name="form" id="form">
  31.  <span>Сколько соперников:</span>
  32.  <select name="vot" size="1" id="votSel">
  33.  <option value="2">2 соперника</option>
  34.  <option value="3">3 соперника</option>
  35.  <option value="4">4 соперника</option>
  36.  <option value="5">5 соперников</option>
  37.  </select>
  38. </form>
  39. <div id="kolsop">
  40.  
  41. </div>
  42.  


результат не отображается в div-e.почему? может где-то ошибся?js недавно изучать начал

(Отредактировано автором: 29 Октября, 2012 - 19:59:20)



-----
Не следует бояться зайти за пределы того, что считается возможным – ибо именно там находится успех.
 
 Top
IllusionMH
Отправлено: 29 Октября, 2012 - 20:10:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




livote, можно было бы и проверить
CODE (javascript):
скопировать код в буфер обмена
  1. console.log(typeof vyb);

и потом уже либо
CODE (javascript):
скопировать код в буфер обмена
  1.  switch (parseInt(vyb, 10)) {

либо
CODE (javascript):
скопировать код в буфер обмена
  1. var vyb = parseInt($('#votSel :selected').val(), 10);

а еще лучше убрать ненужный jQ из этого кода(не только в примере ниже) и получать значение переменной так
CODE (javascript):
скопировать код в буфер обмена
  1. var vyb = parseInt(this.value, 10);

(Добавление)
livote пишет:
js недавно изучать начал

вот лучше учите сначала чистый JS, а не начинать сразу с jQuery

(Отредактировано автором: 29 Октября, 2012 - 20:13:10)

 
 Top
ingram
Отправлено: 29 Октября, 2012 - 20:35:46
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Июнь 2010  


Помог: 3 раз(а)




IllusionMH пишет:
а еще лучше убрать ненужный jQ из этого кода(не только в примере ниже) и получать значение переменной так
CODE (javascript):
скопировать код в буфер обмена
  1. var vyb = parseInt(this.value, 10);



Получить значение селекта чуть чуть сложнее чем получить значение обычного элемента формы. И использование JQ значительно сокращает запись.

Прост сам недавно писал на читом JS выглядит это примено так:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var objSel = document.getElementById("Select1");
  3. alert(objSel.options[objSel.selectedIndex].value);
  4.  
 
 Top
IllusionMH
Отправлено: 29 Октября, 2012 - 21:13:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




ingram, выглядит короче, но работает медленнее.
И, как минимум, обращение к объекту через $(selector) который можно получить через this - одна из основных плохих практик в jQ.
В данном же примере jQ играет только роль тормоза как во времени исполнения, так и в обучении JS.
ingram пишет:
Получить значение селекта чуть чуть сложнее чем получить значение обычного элемента формы.

Да, можно расписать и так, все равно будет быстрее. ИЕ8+ уже отлично работает с value. На счет 6-7 - хз, но это уже просто трата времени их поддерживать.

(Отредактировано автором: 29 Октября, 2012 - 21:14:57)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB