Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Пошаговая форма (https://javascript.ru/forum/events/2922-poshagovaya-forma.html)

SerMax 26.02.2009 16:14

Пошаговая форма
 
Имеется форма, в которой есть несколько <input type=text>
Виден только первый инпут, когда в него вводятся данные, то открывается второй и т.д.

<SCRIPT LANGUAGE="JavaScript">

function first() {
var ba = document.getElementById("quantity");
for ( var i = 0; i < document.calculate_price.group1.length; i++ ){   
                if ( document.calculate_price.group1[i].checked === true )
ba.readOnly=true;
                    }   
}
function second() {
var browser=navigator.appName;
if (browser=="Microsoft Internet Explorer")still="block";else still="table-row";
   document.getElementById("2").style.display = still;
}
</SCRIPT>

<form method="post" name="calculate_price">
<table id="calculator">
<tr>
<td class="a">1.</td><td class="b">Quantity:</td><td class="c"><input type="text" name="quantity" id="quantity" maxlength="10" class="small_blue" onChange="second()"/> (kg)</td>
</tr>
<tr id="2" style="display: none;">
<td>2.</td><td>Delivery:</td><td><span><input type="radio" name="group1" value="Milk" onKeyPress="first()"> Delivered</span><span><input type="radio" name="group1" value="Milk" onClick="first()"> Pickup</span>
</td>
</tr>

Snipe 26.02.2009 16:22

В чем загвоздка?

SerMax 26.02.2009 16:25

Загвоздка в том, что onChange="second()" работает, если мышкой щёлкнешь в сторону от инпута. А это для юзера совсем неудобно. Нужно, чтобы второй инпут появлялся после ввода одного символа в первом инпуте.

SerMax 26.02.2009 16:36

Проблема решена, просто вместо onchange используется onkeyup


Часовой пояс GMT +3, время: 10:53.