我写的javascript错了(可能是)

时间:2014-11-21 14:02:20

标签: javascript

我曾尝试为我的html表单编写js。 js在逻辑上正常运行。但如果逻辑失败,我的意思是如果任何条件失败,它会重新加载页面,这是我不想要的。我提供的代码。如果有的话,请指出js中的错误。

window.onload = function() {
    document.getElementById('submitlink').onclick = function() {

    var bflag = document.addpro.brandflag;
    var brand = document.addpro.brand1.value;
    var cflag = document.addpro.catflag;
    var cat = document.addpro.cat1.value;
    var color1 = document.addpro.color1.value;
    var color2 = document.addpro.color2.value;

    if(cb_validation(bflag,brand))
    {
        if(cb_validation(cflag,cat))
        {
            if(colorcheck(color1,color2))
            {
                document.getElementById('addproform1').submit();
                return false;
            }
        }
    }
}
function cb_validation(flag,field)
{ 
    if(flag[0].checked)
    {
        if(field==0)
        {
            alert('Please Select Both Brand And Category');
            field.focus();
            return false;
        }
        else
        return true;
    }
    else
    return true;
}
function colorcheck(c1,c2)
{ 
    if((c1==0) && (c2==0))
    {
        alert('Please Select Both Colours');
        document.addpro.color1.focus();
        return false;
    }
    else if((c1==0))
    {
        alert('Please Select 1st Colour');
        document.addpro.color1.focus();
        return false;
    }
    else if((c2==0))
    {
        alert('Please Select 2nd Colour');
        document.addpro.color2.focus();
        return false;
    }
    else
    return true;
}
}

我是js的新秀。如果我有任何错误,请告诉我。

2 个答案:

答案 0 :(得分:2)

return false是阻止页面重新加载的原因。现在它在你的最终颜色检查条件内。如果您不希望页面重新加载,则需要在您的第一个cb_validation条件之后。

答案 1 :(得分:1)

Submit()导致页面刷新位于下面一行 的document.getElementById(' addproform1')提交();

此外,您的函数都返回true,因为您在else块中返回true。希望这能指出你正确的方向......

祝你好运....