При клике по четвёртому радиобаттону из 4-х, вызывается функция, где сразу проверяется список точек самовывоза select.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Пример</title>
</head>
<body>
<input id="payType1" type="radio" checked="true" name="payType" value="1" onclick="checkAvailPups()" />
<label for="payType1">наличными</label>
<input id="payType2" type="radio" name="payType" value="2" onclick="checkAvailPups()" />
<label for="payType2">запросить счет</label>
<input id="payType3" type="radio" name="payType" value="3" onclick="checkAvailPups()" />
<label for="payType3">банковская карта</label>
<input id="payType4" type="radio" name="payType" value="4" onclick="checkAvailPups()" />
<label for="payType4">в кредит<sup style="color:red;">new</sup></label><br /><br />
<select onchange="changedPup(this);" id="selfDeliveryPup" name="selfDeliveryPup">
<option value="ptoptik" kbtpup="0" urpup="1" credit="0" visa="0" disabled="">Магазин на ул. Оптиков</option>
<option value="spmbudapes" kbtpup="0" urpup="0" credit="0" visa="0">Будапештская</option>
<option value="spmgrazhd" kbtpup="0" urpup="1" credit="0" visa="0">Гражданский проспект</option>
<option value="spmdesant" kbtpup="0" urpup="0" credit="0" visa="0">Десантников</option>
<option value="spmdunay" kbtpup="0" urpup="1" credit="0" visa="0">Дунайский проспект</option>
<option value="spmdybenko" kbtpup="0" urpup="1" credit="0" visa="0">Дыбенко</option>
</select>
<script type="text/javascript">
function checkAvailPups() {
//список точек самовывоза (<select>)
var select = $('#selfDeliveryPup'), nextAvail;
//выбранный option
var currentPUP = select.children(':selected');
//если выбран 4-й радиобаттон и текущий option имеет атрибут credit != 1
if ($('#payType4').is(':checked') && currentPUP.attr('credit') != 1) {
//нахожу следующий option из списка, где аттрибут credit != 0 чтобы его сделать выбранным
nextAvail = select.children('option[credit!=0]:enabled').eq(0);
//если такой option есть хотябы 1
if (nextAvail.size() > 0) {
alert('Покупка в кредит для выбранной точки самовывоза временно невозможна.');
//то просто отключаю его
currentPUP.attr('disabled', 'disabled');
//и делаю выбранным найденный option где атрибут credit != 0
nextAvail.attr('selected', 'selected');
} else { //если же таких option'ов больше нет
//отключаю radiobutton c выбранным четвёртым вариантом оформления заказа
$('#payType4').attr('disabled', 'disabled');
alert('Покупка в кредит временно невозможна.');
//тут мне надо как бы сэмулировать нажатие на первый вариант доставки, но так не работает :(
$('#payType1').attr('checked', true);
}
return false;
}
}
</script>
</body>
</html>