Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   помогите разобраться с формой (https://javascript.ru/forum/dom-window/4948-pomogite-razobratsya-s-formojj.html)

sc2r2bey 01.09.2009 16:16

помогите разобраться с формой
 
есть форма
<form action="index.php" method="post" >
<tr>
<td>материал</td>
<td>цена</td>
<td><input type="text" name="gramm" size="2" maxlength="2" /></td>
<td><input type="checkbox" name="material" value="0" /></td>
</tr>
<input type="submit" value="далее" />
</form>
как сделать неактивными по умолчанию input type="text", а становятся они активными, только после того как поставят галочку в input type="checkbox"? спасибо!

Octane 01.09.2009 16:20

изменяйте свойство disabled:

inputElement.disabled = true;


в XHTML соответственно атрибут disabled:

<input type="text" disabled="disabled" />

B~Vladi 01.09.2009 16:23

<form action="index.php" method="post" >
<tr>
<td>материал</td>
<td>цена</td>
<td><input type="text"  disabled="disabled" name="gramm" size="2" maxlength="2" /></td>
<td><input type="checkbox" name="material" onchange="chageBox(this)" value="0" /></td>
</tr>
<input type="submit" value="далее" />
</form>


function changeBox(ele){
  ele.form.gramm.disabled=(!ele.checked);
}

sc2r2bey 01.09.2009 17:34

не работает :(

B~Vladi 01.09.2009 17:35

Я не тестил.
Попробуй с onclick

B~Vladi 01.09.2009 17:37

Не, всё ок, просто опечатка:
<input type="checkbox" name="material" onchange="changeBox(this)" value="0" />

Ну такие то вещи можно наверно заметить?!

sc2r2bey 01.09.2009 17:46

теперь да :) спасибо, а если material и gramm это массивы, т.е. material[] и gramm[] как в этой ситуации заставить работать эту конструкцию?

у меня вот так выводится форма
Цитата:

while ($material_select = mysql_fetch_assoc($material_query))
{
echo "<tr>
<td>".htmlspecialchars ( $material_select['material'] )."</td>
<td align=\"center\">".htmlspecialchars ( $material_select['price'] )."</td>
<td align=\"center\"><input type=\"text\" name=\"gramm[]\" size=\"2\" maxlength=\"2\" /></td>
<td align=\"center\"><input type=\"checkbox\" name=\"material[]\" value=\"".htmlspecialchars ( $material_select['id'] )."\" /></td>
</tr>";
}

B~Vladi 01.09.2009 17:50

По-точнее логику, пожалуйста.
Имеется ввиду, что имена чекбоксов - material[], а полей gramm[]? Тогда по какому принципу вкл/откл поля?!

sc2r2bey 01.09.2009 17:53

Цитата:

Сообщение от B~Vladi (Сообщение 29193)
Имеется ввиду, что имена чекбоксов - material[], а полей gramm[]?

да.
те, которые получаются в одноименном проходе цикла

B~Vladi 01.09.2009 18:03

function changeBox(ele){
	for(var i=0;i<document.forms.form['gramm[]'].length;i++){
		document.forms.form['gramm[]'][i].disabled=(!document.forms.form['material[]'][i].checked);
	}
}

Здесь в
document.forms.form

form-имя формы:
<form action="index.php" method="post" name="form" >


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