2016-10-09 3 views
0

Попытка получить переменную из поля ввода HTML и передать ее как параметр в конструкторе javascript. Я новичок в JSПередача функции в конструктор javascript

Конструктор

function Stopwatch(elem,count_Up,count_Down) { 

    //Private Variables 
    var time = 0; // Time in milliseconds 
    var interval; // Used for update function 
    var offset; // 
    var countUp = count_Up 
    var countDown = count_Down 
    console.log('SWT'+countUp+count_Up) 

Добавление значений в конструктор

function setCountTarget() 
{ 
var countTarget_Up = document.getElementById("count_Target").value; 
return countTarget_Up; 

} 

var watch = new Stopwatch(timer,setCountTarget(),setCountTarget()); 
//Create Stopwatch object 1 
+2

У вас есть вопрос? – str

+0

У вас есть основания полагать, что код, который у вас есть, не будет работать? Вам понадобится ясный запрос о проблеме и [MCVE] (в который нужно будет включить HTML, с которым вы хотите взаимодействовать!) – Quentin

+0

объект watch не принимает в переменной countTarget_Up. – CollisionOfConcepts

ответ

0

Вам не придется объявить еще одну переменную внутри функции.

function setCountTarget(){ 
    return document.getElementById("count_Target").value; 
} 

Это возвращает тип строки. Если вы хотите номер, то вы можете сделать,

function setCountTarget(){ 
    return parseInt(document.getElementById("count_Target").value); 
} 

Ну а конструктор объекта или инстансы я бы посоветовал сделать это в цикле. Вы получаете данные от пользователя (вероятно, конец или начало подсчета), тогда вы уменьшаете от конца или приращения от начала рекурсивно. Подумайте о своей проблеме в каждой детали, для которой вам может не понадобиться конструктор. Было бы неплохо прочитать об объектно-ориентированном JS больше.

+0

Спасибо большое! Добавлено Constructor – CollisionOfConcepts

+0

Я хочу, чтобы пользователь вводил число в поле HTML, а затем передал это число в свой конструктор часов. – CollisionOfConcepts

+0

Помогите мне спать – CollisionOfConcepts

0

Трудно сказать наверняка, но я подозреваю, что это проблема синхронизации - чтобы получить значение входного узла, этот узел должен быть загружен в DOM до вызова сценария. Попробуйте обертывание Stopwatch() вызова в window.onload функции, так что вы можете быть уверены, чем DOM был полностью загружен:

function setCountTarget() 
{ 
var countTarget_Up = document.getElementById("count_Target").value; 
return countTarget_Up; 
} 

var watch ;//I'm assuming you want this to be a global variable; 
window.onload = function(){  
    var watch = new Stopwatch(timer,setCountTarget(),setCountTarget()); 
} 
Смежные вопросы