2014-02-04 3 views
5

Я пытаюсь обновить значение строки прогресса HTML5 после ввода значения в текстовой области и нажатия кнопки. Я предполагаю, что я буду вводить только правильно отформатированные целые числа в текстовой области.Динамическое значение индикатора выполнения HTML5 при нажатии кнопки

Вот HTML:

<textarea id="txt" cols=20 rows=1 placeholder="Enter total time"></textarea> 
<button onclick="myFunction()">Save</button> 
<progress id="pr"></progress> 

Вот JavaScript:

function myFunction() 
{ 
var value = document.getElementById('txt').value; 
document.getElementsByTagName("PROGRESS").setAttribute("value",value.parseInt()); 
}; 

Это не похоже на работу. Любая помощь приветствуется.

PS: Это мое первое сообщение здесь, как мне сделать код ярким и красивым?

Edit: Похоже, код стал красочным все само собой :)

ответ

4

Две вещи: Вы отсутствовали диапазон для бара и getElementsByTagName возвращает массив как объект.

function myFunction() { 
 
    var value = document.getElementById('txt').value; 
 
    document.getElementsByTagName("PROGRESS")[0].setAttribute("value", value); 
 
}
<input id="txt" placeholder="Enter total time"> 
 
<button onclick="myFunction()">Save</button> 
 
<br/> 
 
<progress id="pr" max="100"></progress>

+0

Скрипка, кажется, не работает с измененным кодом. Индикатор выполнения остается в исходном значении по умолчанию. – CodeWalker

+0

Он не работает в JSFiddle, но работает в редакторе HTML W3School. – CodeWalker

+0

@CodeWalker Fiddle имеет обертку вокруг функции, обновленную Fiddle to No wrap. – Jonathan

1

Вы используете неправильный код для этого. value не является объектом вызова функции parseInt().

Используя getElementsByTagName, вы получите массив для элементов DOM. Ниже изменения в коде:

function myFunction() 
{ 
var value = document.getElementById('txt').value; 
document.getElementsByTagName("PROGRESS")[0].setAttribute("value",parseInt(value)); 
}; 


<textarea id="txt" cols=20 rows=1 placeholder="Enter total time"></textarea> 
<button onclick="myFunction()">Save</button> 
<progress id="pr"></progress> 
+0

Это не похоже, тоже работают. Я пытаюсь ввести значение «10» в текстовой области, но индикатор выполнения остается в исходном значении по умолчанию. – CodeWalker

+0

Вы помещаете кавычки около 10? работа для меня может быть, вы что-то упустили. – Bhushan

+0

Я пробовал с и без кавычек. Нет кубиков. [Fiddle] (http://jsfiddle.net/9U6aj/8/) – CodeWalker

Смежные вопросы