Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получения значений из формы и оптимизация срипта (https://javascript.ru/forum/misc/59820-polucheniya-znachenijj-iz-formy-i-optimizaciya-sripta.html)

outlaw1313 28.11.2015 18:05

Получения значений из формы и оптимизация скрипта
 
Я всех горячо приветствую. Не понимаю почему из form5 значение берется, а вот через форму таким же макаром не отправляется

<script>
var form5 = document.getElementById('name').value;

function idlolka3(name) {
switch (name) {
  case 1:
    document.getElementById('block1').style.display = 'inline-block'
	document.getElementById('block2').style.display = 'none'
	document.getElementById('block3').style.display = 'none'
    break;
  case 2:
    document.getElementById('block1').style.display = 'none'
	document.getElementById('block2').style.display = 'inline-block'
	document.getElementById('block3').style.display = 'none'
    break;
  case 3:
    document.getElementById('block1').style.display = 'none'
	document.getElementById('block2').style.display = 'none'
	document.getElementById('block3').style.display = 'inline-block'
    break;
  default:
    alert( 'Такого блока нет' );
}
}
</script>

<form onsubmit="javascript:idlolka3(document.getElementById('name').value=='')" method="post">
   <p><select size="1" id="name" name="hero">
    <option disabled>Выберите:</option>
    <option selected value="1">Блок 1</option>
    <option value="2">Блок 2</option>
    <option value="3">Блок 3</option>
    <option value="4">Блок 4</option>
   </select> - <input type="submit" value="Отправить"></p>
  </form>
<a href="javascript:idlolka3(3)">Смелей</a>

<div id="block1" class="block">Заголовок 1</div>
<div id="block2" class="block">Заголовок 2</div>
<div id="block3" class="block">Заголовок 3</div>


Скрипт должен при выбранном в списке блока показывать его, а остальные скрывать. Через кнопку "Смелей" работает. Через форму значение не передает. От сюда вопрос: "Где я ошибся?"

На будущее: как можно оптимизировать скрипт, чтобы он, например, брал нужное число, подставлял в конец id блока для его поиска и САМОЕ ГЛАВНОЕ - остальные скрывал? Есть идея есть это через подстановку block + "параметр", но до такого мне, как до Китая. Что касается исключения, то можно организовать применение правила для всех из диапазона, кроме активного, опять же, мне пока далеко до этого.

Malleys 28.11.2015 19:06

<form onsubmit="idlolka3(parseInt(document.getElementById('name').value));return false;" method="post">

outlaw1313 29.11.2015 00:39

parseInt - видимо я до этого еще не дошел. Благодарю. Осталось оптимизировать.

laimas 29.11.2015 17:17

Цитата:

Сообщение от Malleys
document.getElementById('name').value

this.hero.value


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