如何从输入输出值

时间:2018-09-25 09:30:32

标签: javascript jquery css progress-bar

我需要将值输出到在输入ID号中输入的span类输出中。这是我的代码,它不起作用:

var btn = document.querySelector('.add-val');
btn.addEventListener('click', change_progress);

function change_progress() {
  var elem = document.getElementById("myBar");
  val = parseInt(document.getElementById("number").value);
  var message = document.querySelector('.output');
  var width = 0;
  var id = setInterval(frame, val);

  function frame() {
    if (width >= val) {
      clearInterval(id);
    } else {
      width++;
      elem.style.width = width + '%';
      elem.innerHTML = width * 1 + '%';

    }
    message.innerHTML = val + '%';
  }

}
<div class="form-group">
  <label for="number">Введите число и нажмите кнопку "применить"!</label>
  <input type="text" class="form-control" id="number" min="0" max="100" required>
</div>


<button type="button" class="btn btn-primary add-val">Применить</button>

<div class="progress-wrap">
  <div class="progress-mess">Ваша форма заполнена на <span class="output">___</span></div>
  <progress max="100" value="0" id="myBar" class="progress"></progress>
</div>

2 个答案:

答案 0 :(得分:1)

请检查此示例,它将使用插入的数字填充输出。

   <div class="form-group">
        <label for="number">Введите число и нажмите кнопку "применить"!</label>
        <input type="text" class="form-control" id="number" min="0" max="100" required>
    </div>


   <button type="button" onclick="change_progress();" class="btn btn-primary add-val">Применить</button>

   <div class="progress-wrap">
         <div class="progress-mess">Ваша форма заполнена на <span class="output">___</span></div>  
        <progress max="100" value="0" id="myBar" class="progress"></progress>
    </div>
<script>



function change_progress() {
        var elem = document.getElementById("myBar");
        var val = parseInt(document.getElementById("number").value);
        var message = document.querySelector('.output'); 
        var width = 0;
        var id = setInterval(frame, val);
        function frame() {
            if (width >= val) {
                clearInterval(id);
            } else {
                width++; 
                elem.style.width = width + '%';
                elem.innerHTML = width * 1  + '%';

            }
              message.innerHTML = val + '%';
        }  

    }
</script>

答案 1 :(得分:0)

您只需将setInterval的第二个参数更改为毫秒,然后将宽度设置为消息跨度,如:

message.innerHTML = width + '%';

var btn = document.querySelector('.add-val');
btn.addEventListener('click', change_progress);

function change_progress() {
  var elem = document.getElementById("myBar");
  val = parseInt(document.getElementById("number").value);
  var message = document.querySelector('.output');
  var width = 0;
  var id = setInterval(frame, 1000);

  function frame() {
    if (width >= val) {
      clearInterval(id);
    } else {
      width++;
      elem.style.width = width + '%';
      elem.innerHTML = width * 1 + '%';

      message.innerHTML = width + '%';
    }
  }

}
<div class="form-group">
  <label for="number">Введите число и нажмите кнопку "применить"!</label>
  <input type="text" class="form-control" id="number" min="0" max="100" required>
</div>
<button type="button" class="btn btn-primary add-val">Применить</button>

<div class="progress-wrap">
  <div class="progress-mess">Ваша форма заполнена на <span class="output">___</span></div>
  <progress max="100" value="0" id="myBar" class="progress"></progress>
</div>