подскажите, в какую сторону копать: необходимо сделать динамическую форму, в которой при постановке курсора в поле input ещё несколько инпутов появляются сбоку + добавляется строка с аналогичным input (рядом с которым может что-то появиться).
Спустя 10 минут, 11 секунд (21.02.2008 - 22:54) disc написал(а):
Javascript и обработчик события onMouseOut
Спустя 1 час, 14 минут, 24 секунды (22.02.2008 - 00:08) filippoff написал(а):
да понятно, что java, в этой ветке и тему создал. событие onfocus скорей - это тоже понятно, но вот дальнейшая логика от меня что-то ускользает.
Спустя 3 часа, 44 минуты, 53 секунды (22.02.2008 - 03:53) filippoff написал(а):
в общем, в результате расковырял готовый пример и получил примерно такую не слишком изящную конструкцию, может кому пригодится.
единственное - не пока не дошло как передать фокус в появляющуюся строку
единственное - не пока не дошло как передать фокус в появляющуюся строку
Код
<script language=JavaScript>
var numb;
numb = 1;
function add_new_row() {
var currrow;
currow = document.all.tbl.rows.length; // вычислить количество строк в таблице
if(currow < 9)
{
numb++;
document.all.tbl.insertRow(currow-1); // добавляем строку в таблицу
document.all.tbl.rows[currow-1].insertCell(0); // добавляем ячейки
document.all.tbl.rows[currow-1].insertCell(1);
document.all.tbl.rows[currow-1].insertCell(2);
document.all.tbl.rows[currow-1].insertCell(3);
document.all.tbl.rows[currow-1].cells[0].innerHTML = '<input type=\"text\" size=\"20\" name=\"model_'+ numb +'\">'; // вставляем в форму поля
document.all.tbl.rows[currow-1].cells[1].innerHTML = '<input type=\"text\" size=\"20\" name=\"size_'+ numb+'\">';
document.all.tbl.rows[currow-1].cells[2].innerHTML = '<input type=\"text\" size=\"20\" name=\"color_'+ numb+'\">';
document.all.tbl.rows[currow-1].cells[3].innerHTML = '<input type=\"text\" size=\"20\" name=\"rost_'+ numb+'\">';
document.all.tbl.deleteRow(8);
}
}
</SCRIPT>
<FORM name=links method=post>
<TABLE id=tbl cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD>1</TD>
<TD>2</TD>
<TD>3</TD>
<TD>4</TD>
</TR>
<TR>
<TD><INPUT name=model_1 size="20">
</TD>
<TD><INPUT name=size_1 size="20"></TD>
<TD><INPUT name=color_1 size="20"></TD>
<TD><INPUT name=rost_1 size="20"></TD>
</TR>
<TR>
<TD><INPUT name=model_1 onFocus="add_new_row()" size="20"></TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
</TR>
</TBODY>
</TABLE>
<INPUT type=submit value=Отправить name=submit>
<INPUT type=reset value=Очистить name=reset>
</FORM>
var numb;
numb = 1;
function add_new_row() {
var currrow;
currow = document.all.tbl.rows.length; // вычислить количество строк в таблице
if(currow < 9)
{
numb++;
document.all.tbl.insertRow(currow-1); // добавляем строку в таблицу
document.all.tbl.rows[currow-1].insertCell(0); // добавляем ячейки
document.all.tbl.rows[currow-1].insertCell(1);
document.all.tbl.rows[currow-1].insertCell(2);
document.all.tbl.rows[currow-1].insertCell(3);
document.all.tbl.rows[currow-1].cells[0].innerHTML = '<input type=\"text\" size=\"20\" name=\"model_'+ numb +'\">'; // вставляем в форму поля
document.all.tbl.rows[currow-1].cells[1].innerHTML = '<input type=\"text\" size=\"20\" name=\"size_'+ numb+'\">';
document.all.tbl.rows[currow-1].cells[2].innerHTML = '<input type=\"text\" size=\"20\" name=\"color_'+ numb+'\">';
document.all.tbl.rows[currow-1].cells[3].innerHTML = '<input type=\"text\" size=\"20\" name=\"rost_'+ numb+'\">';
document.all.tbl.deleteRow(8);
}
}
</SCRIPT>
<FORM name=links method=post>
<TABLE id=tbl cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD>1</TD>
<TD>2</TD>
<TD>3</TD>
<TD>4</TD>
</TR>
<TR>
<TD><INPUT name=model_1 size="20">
</TD>
<TD><INPUT name=size_1 size="20"></TD>
<TD><INPUT name=color_1 size="20"></TD>
<TD><INPUT name=rost_1 size="20"></TD>
</TR>
<TR>
<TD><INPUT name=model_1 onFocus="add_new_row()" size="20"></TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
</TR>
</TBODY>
</TABLE>
<INPUT type=submit value=Отправить name=submit>
<INPUT type=reset value=Очистить name=reset>
</FORM>
Спустя 1 день, 8 часов, 59 минут, 45 секунд (23.02.2008 - 12:53) mechanic написал(а):
вместо innerHTML лучше юзать dom-модель
создаете инпут: inp = document.createElement('input');
пото ему назначаются нужные аттрибуты (type, size, name, id)
а фокус ставится как то так: document.getElementById('myinput').focus();
создаете инпут: inp = document.createElement('input');
пото ему назначаются нужные аттрибуты (type, size, name, id)
а фокус ставится как то так: document.getElementById('myinput').focus();
Спустя 2 часа, 50 минут, 29 секунд (23.02.2008 - 15:43) Timok написал(а):
Цитата
вместо innerHTML лучше юзать dom-модель
чем? веб-стандарты?
_____________