2013-03-27 3 views
-1

В JS ниже - я пытаюсь вложить функцию, чтобы мне не пришлось повторять «поле добавления» для каждого поля в форме.Вложенные функции в Javascript

Однако - предупреждение «Трогдор!» отображается только в том случае, если оно помещено до addfield('rcname', 'RC Name');

В результате, инкрементальные значения (i и n) не обновляются, конечно.

Что-то не так с синтаксисом?

function addcameragroup() { 
    var newcamgroup = document.createElement("div"); 
    newcamgroup.setAttribute("id", "camera-" + i); 
    var camform = document.getElementById('formtable'); 
    camform.appendChild(newcamgroup); 

    function addfield(fieldname, fieldtxt) { 
     var newformrow = document.createElement("div"); 
     newcamgroup.appendChild(newformrow); 
     newformrow.setAttribute("class", "formrow"); 
     var fieldlabel = document.createElement("label"); 
     newformrow.appendChild(fieldlabel); 
     fieldlabel.setAttribute("for", fieldname); 
     fieldlabel.innerHTML(fieldtxt); 
    } 

    addfield('rcname', 'RC Name'); 
    alert('Trogdor!'); 
    i++; 
    n++; 
} 
+5

Как правило, если код останавливается, вы получаете сообщение об ошибке. Вы видите консольные сообщения? –

+0

@ScottMermelstein это почти единственная возможность здесь –

+0

@ScottMermelstein Да - извините, что я не включил его: 'Uncaught TypeError: Свойство 'innerHTML' объекта # не является функцией Похоже, что, возможно, делать с тем, что полевая метка является ярлыком document.dcreateElement? Но я не знаю, как ссылаться на него по атрибуту «for». – itamar

ответ

3
fieldlabel.innerHTML(fieldtxt); 

должен быть

fieldlabel.innerHTML = fieldtxt; 

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

MDN Docs для innerHTML: MDN

+0

Спасибо, Бен! Это сработало. Как ни странно, я начал с HTML и PHP - и полностью пропустил JS. Я погружусь в него. Опять же - спасибо! – itamar

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