当我用语句parseInt(a)时,变量a是文本框输入的值,如果输入是字母字符串时导致页面死机。
有什么方法解决?
程序如下:
<script type="text/javascript">
function grdd(a,b)
{
var minvalue=a*b
var c
while(1)
{
c=a%b
if(c==0)
break
a=b
b=c
}
minvalue/=b
return minvalue
}
function oncheck(){
var a=document.all.login.A.value;
var b=document.all.login.B.value;
if(a==null||a=="")
{
    alert("请输入数字a")
}else if(b==null||b==""||b==0)
{
    alert("请输入数字b")
}else
{
   document.all.login.resault.value=grdd(parseInt(a),parseInt(b))
}
}

解决方案 »

  1.   

    while(1)
    {
    c=a%b
    if(c==0)
    break
    a=b
    b=c
    }死机是因为这里c=a%b 之后不等于0 造成的死循环,并不是parseInt的问题. 解决的话,判断一下b!=0,再做除法
      

  2.   

    上面已经给出了b的条件
     if(b==null||b==""||b==0)
    {
    alert("请输入数字b")
      

  3.   

    JScript 语言参考
    http://download.csdn.net/source/308916不懂就查查手册先好么L@_@K
    function oncheck(){
        var a=parseInt(document.all.login.A.value, 10);
        var b=parseInt(document.all.login.B.value, 10);
        if(isNaN(a))
        {
            alert("请输入数字a")
        } 
        else if (isNaN(b) || b==0)
        {
            alert("请输入数字b")
        } 
        else
        {
            document.all.login.resault.value = grdd(a,b)
        }
    }
      

  4.   

    怎么没人来帮忙啊,跪求解决之道,
    也可以做出当a,b为字母字符串时跳出警报
    if(a==null||a==""||parseInt(a)==NaN)
    {
    alert("请输入数字a")
    }
    我增加的这个parseInt(a)==NaN为什么不管用????
      

  5.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function show() {
    var temp = document.getElementById('test').value;
    if (isNaN(temp)) {
    alert("请输入数字!");
                            return false;
    }
                    return true;
    }

    //-->
    </SCRIPT>
    </HEAD><BODY >
    <input type="text" id="test" onBlur="show()">
    </BODY>
    </HTML>
    用isNaN是否为数字
      

  6.   

        alert(parseInt("abc")); // NaN
        alert(parseInt("abc")==NaN); // false与 null 不同,NaN 之间是不等的,要用 isNaN() 来判断,记住这个就好了!建议系统地学习一下 js!
      

  7.   

    a=parseInt('0'+document.all.login.A.value, 10);
    b=parseInt('0'+document.all.login.B.value, 10);当输入的是文字的话,转成的是0,然后没有NaN的情况
      

  8.   

    while(1)
    {
    c=a%b
    if(c==0)
    break
    a=b
    b=c
    }
    这里c=a%b 如果有字母字符的话结果是NAN,如果含NAN的话结果为空,最后一直在NAN和结果为空那里折腾,不等于0,都跳不出循环,页面不死才怪