Jump to content
  • 0

option disabled не работает в IE


koxa
 Share

Question

есть некоторые поля option, свойство disabled которых задается функцией на javascript. В мозиле всё ок, в ие не работает.

и еще... есть кнопка вывода результатов, по нажатию она перекидывает вниз страницы, что в ие не работает

помогите пожалуйста!!!

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>


<div style="width:636px; margin:auto" id="text">
<h3 align="center" style="color: #FF0000; font-weight: bold; "><strong>Кредитный калькулятор</strong></h3>
<p align="left" style="color: #FF0000; font-weight: bold; ">Предлагаем вам рассчитать ориентировочную сумму ежемесячных платежей по возврату основной суммы и процентов за пользование кредитом в зависимости от срока кредитования и размера процентной ставки, а также определить наиболее удобную для вас схему кредитования.</p>
<p align="left" style="color: #FF0000; font-weight: bold; "> Более подробную информацию можно получить при личной встрече с кредитным экспертом.</p>
<span style="font-weight: bold; font-size:10px">Примечания:<br />
</span>

<ul>
<li style="font-weight: bold; font-size:10px">Не забудьте включить <span style="text-decoration: underline;">JavaScript</span>
в настройках браузера.</li>
</ul>

<ul>
</ul>
</div>
<script language="JavaScript" type="text/javascript" src="calc.js"></script>
<div id="calc" align="center">
<form name="calcform" id="calcform" action="self">
<table width="636" cellspacing="3">
<tr>
<td id="line" width="247" rowspan="6" valign="top"><div align="right" class="style2">

<p style="color: #FF0000; font-weight: bold; ">Кредитные сведения:</p>
</div></td>
<td valign="top"><p align="left"><strong>Выберите тип кредита:</strong></p>
<p align="left">


<select name="credit_type" id="credit_type" onchange="Init_options();">
<option value="zal">Залоговый</option>
<option value="bez_zal">Без залога</option>
</select>
</p></td>
</tr>
<tr>
<td valign="top"><p align="left"><strong>Выберите кредитную программу:</strong>


</p>
<p align="left">
<select name="kredit_prog" id="kredit_prog" onchange="ChangeCalcType();">
<option value="35.9">Под залог авто, недвижимости</option>
<option value="46" disabled="disabled">Доступный</option>
<option value="42" disabled="disabled">Универсальный</option>
<option value="83.95" disabled="disabled">Бизнес</option>
</select>
</p></td>
</tr>
<tr>
<td width="353" valign="top"><p align="left"><strong>Сумма
кредита , грн.</strong></p>
<p align="left">
<input value="100000"
onchange="Init();" type="text" name="summa" id="summa" maxlength="255" />
</p></td>
</tr>
<tr>
<td valign="top"><p align="left"><strong>Срок кредитования, мес.</strong></p>
<p align="left">
<input
name="period" type="text" id="period" onchange="Init();" value="12" size="10" maxlength="255" />
</p></td>
</tr>
<tr> </tr>
<tr>
<td height="101" valign="top"><p align="left"><strong>Тип расчета</strong></p>
<p align="left">

<input name="radio" type="radio" id="RadioGroup1_0" value="an" checked="checked" onchange="ChangeCalcType();" />
Аннуитетный
(равными частями)<br />

<input type="radio" name="radio" value="clas" id="RadioGroup1_1" onchange="ChangeCalcType();" />
Классический
<br />
</p></td>
</tr>
<tr>
<td height="101"><div align="right" style="color: #FF0000; font-weight: bold; "><strong>График платежей:</strong></div></td>
<td>

<div align="left"><a href="#calc_table">
<input name="button" type="button" id="button" onclick="Calc();" value="Построить" />
</a>
<!-- <a href="#calc_table" onClick="Calc();">Посчитать </a> -->
</div></td>
</tr>
</table>

</form>
<br />
<div id="datation" align="center"></div>
<a name="calc_table" id="calc_table"></a>


<script language="JavaScript" type="text/javascript">

ChangeCalcType();

</script></div>



</body>
</html>

и js файл:

   
var CreditSum;
var Rate;
var PeriodPercent;
var PaymentCount;
var PaymentCountPay;
var EquPart;
var Release;
var Years;
var Koef;


var z1=0;
var z2=0;
var z3=0;



//
function Clear(){
var f = document.getElementById('datation');
f.innerHTML = "";
}

//
function GetPercent(){
var p;
var kredit_prog=document.getElementById('kredit_prog');
p=kredit_prog.options[kredit_prog.selectedIndex].value;
return p;
}

function Init_options(){
var credit_type = document.getElementById('credit_type');
var credit_type_val= credit_type.options[credit_type.selectedIndex].value;
var kredit_prog=document.getElementById('kredit_prog');
if (credit_type_val=="zal"){

kredit_prog.options[0].disabled=false;
kredit_prog.options[0].selected=true;
kredit_prog.options[1].disabled=true;
kredit_prog.options[2].disabled=true;
kredit_prog.options[3].disabled=true;
}
if (credit_type_val=="bez_zal"){
kredit_prog.options[0].disabled=true;
kredit_prog.options[1].disabled=false;
kredit_prog.options[2].disabled=false;
kredit_prog.options[2].selected=true;
kredit_prog.options[3].disabled=false;
}
ChangeCalcType();
}

function ChangeCalcType(){
var f = document.getElementById('calcform');
var percent= GetPercent();
switch (percent){
case '35.9':
f.radio[0].checked=false;
f.radio[1].checked=true;
break;
case '46':
f.radio[0].checked=true;
f.radio[1].checked=false;
break;
case '42':
f.radio[0].checked=true;
f.radio[1].checked=false;
break;
case '83.95':
f.radio[0].checked=false;
f.radio[1].checked=true;
break;
default:
alert('def');}
Clear();
}


function Init(){

Clear();


var f = document.getElementById('calcform');



CreditSum = parseInt(f.summa.value,10);
Rate = GetPercent();
PeriodPercent = Rate / 12 / 100;
PaymentCount = parseInt(f.period.value,10);
PaymentCountPay = PaymentCount;
Years=Rate/12;
Koef=PaymentCount/12;
EquPart = CreditSum / PaymentCountPay;
Release = CreditSum;

z1 = 0;
z2 = 0;
z3 = 0;




}

function Calc(){
var res1 = "";
var res2 = "";
var check = new Array();
var f = document.getElementById('calcform');


Init();


if(f.period.value>120){
alert("Срок кредитования не может быть более 120 месяцев");
f.period.focus();
return false;
}


if (f.radio[0].checked){
res1 = Calc1(1);
}
else {
res1 = Calc2(1);}

z1=Number(z1).toFixed(2);
z2=Number(z2).toFixed(2);
z3=Number(z3).toFixed(2);

//
res2 = "<table id='res' cellspacing='15' border='5' bordercolor='red' cellpadding='5'><tr><th>Платеж</th><th>Сумма платежа</th><th>Тело кредита</th><th>Проценты (*)</th></tr>" + res1 + "<tr><td> </td><td align=right><b>"+z1+"</b></td><td align='right'><b>"+z2+"</b></td><td align=right><b>"+z3+"</b></td></tr></table>"
res2 += "<div><hr /></div><a href='#' onclick='window.print();' id='step'>Распечатать</a><br><br>";
f = document.getElementById('datation');
f.innerHTML = res2;

return false;
}


function Calc1(i){
var f = document.getElementById('calcform');
var d,t,d1,t1,s,r;

if (i > PaymentCount) return "";



var p1;
p1 = (CreditSum * Rate / 100 / PaymentCount * Koef);



var p3;
p3 = EquPart;
p3 = (i == PaymentCount) ? Release : p3;

r = Release;
Release = Release - p3;
if(Release < 0) Release = 0;




//
z1 += p3+p1;
z2 += p3;
z3 += p1;


s = Calc1(i+1);

return "<tr><td align='center'>"+parseInt(i,10)+"</td><td align='right'>"+Number(p3+p1).toFixed(2) +"</td><td align='right'>"+Number(p3).toFixed(2)+"</td><td align='right'>"+Number(p1).toFixed(2)+"</td></tr>" + s;
}

function Calc2(i){
var f = document.getElementById('calcform');
var d,t,d1,t1,s,r;

if (i > PaymentCount) return ""; // условия окончания рекурсии


d = 365;
t = 30.5;

d1 = d;
t1 = t;


var p0;
if (i==0){

p0 = CreditSum * Rate / 100 / d * t;
}else{
p0 = Release * Rate / 100 / d * t;
}


var p1;
if (i==0){

p1 = CreditSum * Rate / 100 / d1 * t1;
}else{
p1 = Release * Rate / 100 / d1 * t1;
}

var p2;
p2 = p0 + p1;


var p3;
p3 = EquPart;
p3 = (i == PaymentCount) ? Release : p3;

r = Release;
Release = Release - p3;
if(Release < 0) Release = 0; // если уши в минус




z1 += p3+p1;
z2 += p3;
z3 += p1;


s = Calc2(i+1);

return "<tr><td align=center>"+parseInt(i,10)+"</td><td align=right>"+Number(p3+p1).toFixed(2) +"</td><td align=right>"+Number(p3).toFixed(2)+"</td><td align=right>"+Number(p1).toFixed(2)+"</td>" + s;
}

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Вобщем есть 2 элемента селект. В зависимости от выбраных опций первого активируются или деактивируются опции второго.

1й селект:

<select name="credit_type" id="credit_type" onchange="Init_options();">
<option value="zal">Залоговый</option>
<option value="bez_zal">Без залога</option>
</select>

2й селект:

<select name="kredit_prog" id="kredit_prog" onchange="ChangeCalcType();">
<option value="35.9">Под залог авто, недвижимости</option>
<option value="46" disabled="disabled">Доступный</option>
<option value="42" disabled="disabled">Универсальный</option>
<option value="83.95" disabled="disabled">Бизнес</option>
</select>

При изменении 1го срабатывает яваскрипт функция Init_options, которая и управляет опциями 2-го селекта.

Вот эта функция:

function Init_options(){
var credit_type = document.getElementById('credit_type');
var credit_type_val= credit_type.options[credit_type.selectedIndex].value;
var kredit_prog=document.getElementById('kredit_prog');
if (credit_type_val=="zal"){

kredit_prog.options[0].disabled=false;
kredit_prog.options[0].selected=true;
kredit_prog.options[1].disabled=true;
kredit_prog.options[2].disabled=true;
kredit_prog.options[3].disabled=true;
}
if (credit_type_val=="bez_zal"){
kredit_prog.options[0].disabled=true;
kredit_prog.options[1].disabled=false;
kredit_prog.options[2].disabled=false;
kredit_prog.options[2].selected=true;
kredit_prog.options[3].disabled=false;
}

Так вот в мозилле она работает, а в ие - нет, помогите пожалуйста !

Edited by koxa
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy