JavaScript函数冻结我的浏览器

javascript function freezing my browser

本文关键字:浏览器 我的 冻结 函数 JavaScript      更新时间:2023-09-26

我有两个选择对象,一个是开始时间,一个是结束时间。当我在开始时间选择例如 11:00 时,我希望在结束时间 11:00 之前的所有选项都禁用 蜜蜂 11:15 并选择其余选项。另外我想说我是javascript的新手。

这是我的HTML代码的一部分:

<select id="rbaslasaat" onchange="bitissaati(1384581600, 1384586100);">
<option value="1384581600">10:00</option>
<option value="1384582500">10:30</option>
<option value="1384583400">11:00</option>
<option value="1384584300">11:30</option>
<option value="1384585200">12:00</option>
<option value="1384586100">12:30</option>
</select></div>
<select id="rbitirsaat">
<option id="saatb1384581600" value="1384581600" disabled="">10:00</option>
<option id="saatb1384582500" value="1384582500" disabled="">10:30</option>
<option id="saatb1384583400" value="1384583400" disabled="">11:00</option>
<option id="saatb1384584300" value="1384584300" disabled="">11:30</option>
<option id="saatb1384585200" value="1384585200" disabled="">12:00</option>
<option id="saatb1384586100" value="1384586100" disabled="">12:30</option>
</select></div>

这是我的JavaScript函数:

function bitissaati(saata, saatb) {
var saata, saatb, saatc, saatca, sec, i;
saatc = document.getElementById('rbaslasaat');
saatca = saatc.options[saatc.selectedIndex].value;
sec = parseInt(saatca) + 900;
for (i = saata; i<= saatb; i + 900) {
if(i <= saatca ) { document.getElementById('saatb'+i).disabled=true; }
else { document.getElementById('saatb'+i).disabled=false; }
}
document.getElementById('saatb'+sec).selected=true;
}

我无法弄清楚问题是什么。每次我尝试功能时,我的浏览器都会冻结。

谢谢大家的帮助

修复你的代码:

for ( i = saata; i<= saatb; i += 900) {

编辑:删除了var

我只会做:

function bitissaati(elem) {
    var opt = document.getElementById('rbitirsaat').getElementsByTagName('option'),
        val = elem.value;
    for (i=opt.length; i--;)  {
        opt[i].disabled = opt[i].value <= val;
    }
}

小提琴

loop替换为

for (var k = saata; k<= saatb; k += 900) {
    if (k <= saatca) {
        document.getElementById('saatb'+k).disabled=true;
    }
    else {
        document.getElementById('saatb'+k).disabled=false;
    }
}
相关文章: