По совету Octane поменял имя, все заработало. Потребовалось сделать еще одно изменение в скрипт. Суть вообще всего скрипта проста: по нажатии появляется форма для ввода текста, повторным нажатием скрывается. При этом при появлении/скрытии введенный текст в поле не должен исчезать, а должен сохраняться (а то вдруг случайно нажали). При этом еще один выпадающий список делается нерабочим/рабочим - конкретно тут проблемы нет.
function addManufacturer() {
form = document.getElementById('newManufacturerDivTag');
form2 = document.getElementById('chooseManufacturer');
form3 = document.getElementById('newManufacturerInputTag');
var inputPrevious;
if(form.innerHTML=='') {
if(inputPrevious.length>0) form.innerHTML='<input name="newManufacturerName" id="newManufacturerInputTag" type="text" value="'+inputPrevious+'">';
else form.innerHTML='<br><input name="newManufacturerName" id="newManufacturerInputTag" type="text">';
form2.disabled='true';
}
else {
inputPrevious = form3.value;
form.innerHTML='';
form2.disabled='';
}
}
<select name="m_id" id="chooseManufacturer">
...
<div id="newManufacturerDivTag"><br><input name="newManufacturerName" id="newManufacturerInputTag" type="text" value=""></div>
Вот такой код не работает, у меня ощущение что переменная inputPrevious после выполнения функции получает значение, но не сохраняется, и поэтому условие if(inputPrevious.length>0) показывает ошибку. А вот почему так происходит? Вроде она локальная для функции, должна сохраняться.