значить энто - хтмльная форма…
<tr><td><b>Страна</b></td><td> <select id="countries" name="countries" onchange="choose();">
<option selected value="none">Выберите страну</option>
<option value="Ukraine">Украина</option>
<option value="Russia">Россия</option></select></td></tr>
<tr><td><br></td></tr>
<tr><td><b>способ оплаты</b></td>
<td> <input type="radio" name="payMethod" value="cash">Наличными<br>
<input type="radio" name="payMethod" value="post">Почтой<br>
<input type="radio" name="payMethod" value="cD">Кредитной картой Visa/MasterCard <br>
<input type="radio" name="payMethod" value="WM">WebMoney<br></td></tr>
<tr><td><br /></td></tr>
<tr><td><b>способ доставки</b></td>
<td><input type="radio" name="deliveryMethod" value="standAlone">Самовывоз<br> <input type="radio" name="deliveryMethod" value="courier">Куръером во Львове<br>
<input type="radio" name="deliveryMethod" value="post">Почтой<br><br></td></tr>
<tr><td align="center" colspan="2"><input type="submit" name="continue" value="отослать"></td></tr>
Да, я знаю - код по-блядскому оформлен…я просто не верстальщик, но тут вроде как и разобраться еще можна(тоеть случай не из худшых)))…
Идем, дальше……яваскрипт….
function choose()
{
var list = document.getElementById("countries");
var selectedOption = list.options[list.selectedIndex].value;
var payMethod = document.getElementsByName("payMethod");
var deliveryMethod = document.getElementsByName("deliveryMethod");
switch (selectedOption)
{
case "none":
for(var i=0;i<payMethod.length;i++)
{
payMethod.disabled = true;
}
for(var i=0;i<deliveryMethod.length;i++)
{
deliveryMethod.disabled = true;
}
break;
case "Ukraine":
for(var i=0;i<payMethod.length;i++)
{
switch(payMethod.value)
{
case "cash": payMethod.disabled = true;
break;
case "post": payMethod.disabled = true;
break;
case "cD": payMethod.disabled = false;
break;
case "WM": payMethod.disabled = false;
break;
}
}
for(var i=0;i<deliveryMethod.length;i++)
{
switch(deliveryMethod.value)
{
case "standAlone": deliveryMethod.disabled = true;
break;
case "courier": deliveryMethod.disabled = false;
break;
case "post": deliveryMethod.disabled = true;
break;
}
}
break;
case "Russia":
for(var i=0;i<payMethod.length;i++)
{
switch(payMethod.value)
{
case "cash": payMethod.disabled = true;
break;
case "post": payMethod.disabled = false;
break;
case "cD": payMethod.disabled = true;
break;
case "WM": payMethod.disabled = true;
break;
}
}
for(var i=0;i<deliveryMethod.length;i++)
{
switch(deliveryMethod.value)
{
case "standAlone": deliveryMethod.disabled = true;
break;
case "courier": deliveryMethod.disabled = false;
break;
case "post": deliveryMethod.disabled = false;
break;
}
}
break;
}
}
Да, оно работает, оно все на лету меняет…все без ошыбок….
….но, энто просто пиздец…вы посмотрите на этих 90 строчек кода…
я чето долго думал и не знал как можно изменить…
а вам не кажеться - что никак(?….что это - проклятье JS-кодера)?
Например свойство disabled для какогото определенного елемента в цыкле в "тру" не поставишь, ибо когда выберешь в селекте шото другое - то оно так и останеться….короче то шо надо изменять тупо каждый елемент - это стопудов….
вообщем…если есть у когото мнения какието, то подтолкните хотябы какуюто мысль….
….пиздец….заибешся писать….