Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как передать значение из формы (https://javascript.ru/forum/misc/56795-kak-peredat-znachenie-iz-formy.html)

Stroy 04.07.2015 17:07

Как передать значение из формы
 
Здравствуйте. Есть форма
<form action="">
        <input type="text" name="" id="number" value="1000">
        <input type="submit" value="Задать время" onclick="setTime()">
        </form>

Как присвоить переменной в js коде значение, введенное в input с id= number? Желательно на примере.

Decode 04.07.2015 19:03

document.getElementById('number').oninput = function() {
     var val = this.value;
};

Stroy 05.07.2015 21:01

Что-то не то. Пишет ''undefined".

Decode 06.07.2015 02:04

Stroy,
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <form action="">
    <input type="text" name="" id="number" value="1000">
    <input type="submit" value="Задать время" onclick="setTime()">
  </form>
  
  <script>
    function setTime() {
      var val = document.getElementById('number').value;
      alert(val);
    }
  </script>

</body>
</html>

Stroy 06.07.2015 13:39

Извините за назойливость, но что-то не получается. Значение присваивается, но при этом не передается в другую функцию
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
        var ms = 1000;
        var  number;
        var interval;
        function MP3(){
            document.getElementById('player').play();          
        }
        function setTime () {
               number = document.getElementById('number').value;
        }
        function SetInterval(){
           number = number * ms;
			interval = window.setInterval(MP3(), number);
            console.log(number);
            
		}
		function ClearInterval(){
			window.clearInterval(interval);
		}
        
    </script>
    <style type="text/css">
        div{
            margin: 0 auto;
            width: 400px;
        }
    </style>
</head>
<body>
       <div>Музыка
        <audio id="player" src="DA1.mp3" controls></audio>
        <form action="mp3.html" >
        <input type="text" name="numb" id="number" value="10">
        <input type="submit" value="Запуск цикла" onclick="setTime()">
        <input type="submit" value="Остановка таймера">
        </form>
        </div>       
    <button onclick="SetInterval()" value="">Запуск цикла</button><br>
    <button onclick="ClearInterval()" value="">Прервать цикл</button>

</body>
</html>

рони 06.07.2015 15:26

Цитата:

Сообщение от Stroy
window.setInterval(MP3(), number);

зачем скобки?

Stroy 06.07.2015 15:29

Уже исправил. Но таймер все равно не работает. В консоли выдает NaN.

рони 06.07.2015 16:16

Stroy,
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
        var ms = 1000;
        var  number;
        var interval;
        function MP3(){
            document.getElementById('player').play();
        }
        function setTime () {
               number = document.getElementById('number').value;
        }
        function SetInterval(){
            !number &&  setTime();
            !+number && (number = 10);
            number = number * ms;
            MP3();
            ClearInterval();
			interval = window.setInterval(MP3, number);
		}
		function ClearInterval(){
			window.clearInterval(interval);
		}

    </script>
    <style type="text/css">
        div{
            margin: 0 auto;
            width: 400px;
        }
    </style>
</head>
<body>
       <div>Музыка
        <audio id="player" src="http://boobooka.com/wp-content/uploads/2013/01/moneta.mp3" controls></audio>
        <form action="mp3.html" onsubmit="return false" >
        <input type="text" name="numb" id="number" value="10">
        <input type="submit" value="установить время цикла" onclick="setTime()">
        </form>
        </div>
    <button onclick="SetInterval()" value="">Запуск цикла</button><br>
    <button onclick="ClearInterval()" value="">Прервать цикл</button>

</body>
</html>

Stroy 06.07.2015 16:43

Всё работает. Но хотелось бы разобраться. Что я делал неправильно?

рони 06.07.2015 17:17

Stroy,
в основном строка 39 и у вас строгий порядок должен быть сначала установка времени -- строка 41 потом всё остальное -- поэтому если кто пропустит куча "защит от дурака" - строки 17 и 18 --- строка 21 защита от повторного запуска интервала


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