2016-06-10 2 views
-1

Я очень новичок в JavaScript и мне нужна помощь. Я пытаюсь передать значение из функции в <head> моего документа HTML, чтобы он запускался после загрузки страницы, и я не могу понять, как передать значение из функции в текстовое поле внутри формы в документе <body> документа.Невозможно передать значение из функции в текстовое поле

alert ('Starting now'); 
function calc(){ 
    const FEES=14.5; 
    const DUES=5; 
    var cFees; 
    var lDues; 
    cFees=FEES * 16; 
    lDues=DUES * 16; 
    document.getElementById("league"); 
    } 

alert('Finished'); 

Я не могу понять, что я предполагаю сделать для того, чтобы пройти по значению cFees в текстовое поле с идентификатором «лиги». Предупреждения указывают на то, что он фактически начинает/заканчивается должным образом.

EDIT: Вот код, который я хочу передать значения

<form> 
</div> 
<div id="righta"> 
<input type="text" name="league" id="league" readonly />League Dues 
<br /> 
<input type="text" name="fee" id="fee" readonly />Golf Course Fees 
<br /> 
<input type="text" name="total" id="total" readonly />Total for the Season 
</div> 
</form> 
+0

Вы определили функцию под названием 'calc', которая не принимает никаких параметров. Вы должны вызвать эту функцию для ее внутреннего кода для выполнения. – mmcrae

ответ

1

Вы должны установить его свойство значение:

document.getElementById('league').value = cFees; 

Если вы проезжали его в HTML-элемент, вы можете использовать innerHTML вместо этого ...

eg <div id="divTest"></div>

document.getElementById('divTest').innerHTML = cFees; 

Если вы хотите его запустить при загрузке страницы, а затем добавить прослушиватель событий к окну ...

window.addEventListener(
    'load', 
    function() { 
     document.getElementById('league').value = cFees; 
    }, 
    false); 

ПОЛНОГО КОД

Вот полный HTML пример, показывающий соответственно обновляемые поля в соответствии с функцией calc(). Я установил это для обновления при загрузке окна, но вы можете установить его через какое-то другое событие, если хотите.

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <script> 
      function calc() { 
       const FEES = 14.5; 
       const DUES = 5; 
       var cFees = FEES * 16; 
       var lDues = DUES * 16; 
       document.getElementById('txtFees').value = cFees.toFixed(2); 
       document.getElementById('txtDues').value = lDues.toFixed(2); 
      } 

      window.addEventListener('load', calc, false); 
     </script> 
    </head> 
    <body> 
     <input id="txtFees" type="text" value="" readonly> 
     <input id="txtDues" type="text" value="" readonly> 
    </body> 
</html> 
+0

Спасибо за ответ, но он все еще не работает должным образом. Страница по-прежнему загружается без заполнения каких-либо полей. – shoulder

+0

Вам нужно будет вычислить значение cFees, прежде чем устанавливать его здесь, конечно. И вам нужно будет добавить похожие строки для каждого поля, которое вы хотите заполнить данными. Но вы можете сделать это сами. Или, если вы уточните свои требования, я соответственно обновлю ответ. – ManoDestra

+0

Обновлен мой ответ, чтобы лучше соответствовать вашим требованиям :) – ManoDestra

0
window.onload = function() { 
    //body of your func 
    document.getElementById("league"). value = cFees; 
}; 
0

Ваша функция не может редактировать HTML из головы. Если это должно быть в голове, вам нужно сделать прослушиватель событий.

window.addEventListener('load', function() { calc(); }, false); 
Смежные вопросы