У меня есть HTML-форма, пользователь должен иметь возможность добавлять другие текстовые поля для заданного вопроса. но перед любым вводом текста есть выбор выпадающего меню, текстовые поля становятся видимыми после каждого выбора (также зависит от выбора, видимого изменения количества текстовых полей). вот javascript;javascript htcontents не отображается в html правильно
var var1=1;
function addAffiliation(){
var newArea = addNew();
var htcontents ="<input placeholder='categories..'
class='input_box' type='textbox' name='categories[]'
onchange='display(this, 'field2', 'field3', 'field4');'/>"
+ "<br/><br/>";
document.getElementById(newArea).innerHTML = htcontents;
}
function addNew() {
var1=var1+1;
var var2 = document.getElementById('area');
var newdiv = document.createElement('div');
var divIDName = 'Div #'+ var1;
newdiv.setAttribute('id',divIDName);
ni.appendChild(newdiv);
return divIDName;
}
но при добавлении дополнительного поля вместо;
<input placeholder="categories.."
class="input_box" type="textbox" name="categories[]"
onchange="display(this, 'field2', 'field3', 'field4');"/>
это создается (двойные кавычки местоположение неправильно)
<input placeholder="categories.."
class="input_box' type="textbox" name="categories[]"
onchange="display(this, "field2', 'field3', 'field4');'/>
и из-за этой проблемы, field2-3-4 не видно ..
что делать?
здесь функция отображения
function display(obj,id1,id2,id3) {
txt = obj.options[obj.selectedIndex].value;
document.getElementById(id1).style.display = 'none';
document.getElementById(id2).style.display = 'none';
document.getElementById(id3).style.display = 'none';
if (txt.match(id1)) {
document.getElementById(id1).style.display = 'block';
}
if (txt.match(id2)) {
document.getElementById(id2).style.display = 'block';
}
if (txt.match(id3)) {
document.getElementById(id3).style.display = 'block';
}
}
@Aram,
Я хочу иметь выпадающее меню;
<option name="first">selection 1</option>
<option name="second">selection 2</option>
если пользователь выбирает выбор 1;
field1:< input name="field1".....>
field2:< input name="field2".....>
если пользователь выбирает выбор 1;
field3:< input name="field3".....>
field4:< input name="field4".....>
field5:< input name="field5".....>
, когда пользователь заканчивает заполнение ящиков, он может захотеть добавить больше;
addReference();
затем снова он видит,
<option name="first">selection 1</option>
<option name="second">selection 2</option>
и так далее .. что теперь ясно?
Где ' display() 'function? – ManseUK
Не может показаться здесь: P Это очень грязный способ обработки, поэтому привязка обработчика события click в jquery и выполнение всего в одном файле js лучше этого. –