Javascript 页面转到无限循环 函数insval() { var insno=document.getElementById('ins').value; var a=1; 对于(k=1;k
您需要将数字与数字进行比较,而不是像在循环中那样将数字与字符串进行比较。解决方案非常简单:Javascript 页面转到无限循环 函数insval() { var insno=document.getElementById('ins').value; var a=1; 对于(k=1;k,javascript,php,jquery,Javascript,Php,Jquery,您需要将数字与数字进行比较,而不是像在循环中那样将数字与字符串进行比较。解决方案非常简单: <script type="text/javascript"> function insval() { var insno=document.getElementById('ins').value; var a=1; for(k=1;k<=insno;k++) { if((document.getElementById('num_cat'
<script type="text/javascript">
function insval()
{
var insno=document.getElementById('ins').value;
var a=1;
for(k=1;k<=insno;k++)
{
if((document.getElementById('num_cat'+k).value=="")||(document.getElementById('num_cat'+k).value=="0"))
{
alert("Please Select Number of Insulins");
a=2;
return false;
}
else
{
var num = $('#num_cat'+ k).val();
var i;
for(i=1;i<=num;i++)
{
if(document.getElementById('insulin'+k+i).value=="")
{
alert("Please Insert Insulins");
a=2;
return false;
}
}
}
if(a==2)
{
return false;
}
if((k+1)==insno)
{
tabval();
}
}
function tabval()
{
var tabno=document.getElementById('tabletno').value;
for(k=1;k<=tabno;k++)
{
if((document.getElementById('tab_cat'+k).value=="")||(document.getElementById('tab_cat'+k).value=="0"))
{
alert("Please Select Number of Tablets");
a=2;
return false;
}
else
{
var num = $('#tab_cat'+ k).val();
var i;
for(i=1;i<=num;i++)
{
if(document.getElementById('tablet'+k + i).value==""||document.getElementById('tablet'+k + i).value=="0")
{
alert("Please Insert Tablets");
a=2;
return false;
}
}
}
}
}
}
</script>
当您将输入值读取为
var insno= parseInt(document.getElementById('ins').value,10);
返回的值是javascript中的字符串
因此,您必须使用
var insno=document.getElementById('ins').value;
还可以在for循环中定义“k”变量的范围。
在嵌套函数tabval中,“k”的值再次重置为1,因此for循环(insval)再次从k=1开始
这应该可以解决无限循环的问题。我想检查insno=2和tabno=0的值是否有for循环(k=1;k'insno'是一个数字,我可以打印出来。但是当你说:var insno=document.getElementById('ins').value;那么insno将是一个类似“2”的文本,而不是数字2。这就是为什么你需要添加parseInt(…)正如我上面所描述的,我还更改了var tabno=parseInt(document.getElementById('tabletno').value,10);如果删除tabval()函数,它将起作用。我认为tabval()函数有一些问题。您还需要将变量“num”更改为整数:var num=parseInt($('#tab_cat'+k).val(),10);变量“tabno”也是如此是否可以在insval()内调用tabval()。您可以在insval内调用tabval,但我注意到您没有正确地确定“k”变量insval的作用域为(k=1;k)
var insno=document.getElementById('ins').value;
var insno=parseInt(document.getElementById('ins').value,10);