javascript – onsubmit方法不停止提交

我的投诉不起作用我的想法是放置一些强制性字段,为了实现这一点,我在 HTML中的表单中使用onsubmit方法,这个方法称为 JavaScript函数.

这个想法是如果所有必填字段都被填写,JavaScript函数将返回true,并且将转到page /control/Cadastro.PHP页面.否则,如果任何必填字段为空,它将返回false,并且不会移动到page /control/Cadastro.PHP,保持在当前页面,直到为true.

不幸的是,如果所有必填字段都没有按预期填写,那么函数确实返回false,但是它仍然移动到page /control/Cadastro.PHP,即使不是.

我要切断一些代码,使我的观点觉察到.

<!DOCTYPE html>
<html>
    <head>
        <script>
            function ValidaterequiredFields()
            {
                var message = new String('\nCampos obrigatórios:\n');
                var flag=new Boolean(1);
                var x=document.forms["theForm"]["nr_processoCA"].value;
                if (x==null || x==""){
                    message += '\nNº do processo\n'; 
                    flag = new Boolean(0);
                } 
                if (flag == false){
                    alert(message);
                }
                return flag;    
            }
        </script>
    </head>
    <body>
        <form name="theForm" onsubmit="return ValidaterequiredFields()" method="post" action="../control/Cadastro.PHP"> 
            Nº do Processo: <br>
            <input type="text" name="nr_processoCA" class="input-xlarge">
            <br>
            <div class="row-fluid" style="text-align:center;">
                <input type="submit" class="btn btn-primary btn-large" value="Gravar">
            </div>   
         </form>
    </body>
</html>

解决方法

你应该在你的onsubmit函数中使用preventDefault.我修改了你的代码
function ValidaterequiredFields()
{
    var message = new String('\nCampos obrigatórios:\n');
    var flag=new Boolean(1);


    var x=document.forms["theForm"]["nr_processoCA"].value;
    if (x==null || x==""){
        message += '\nNº do processo\n'; 
        flag = new Boolean(0);
    }

    if (flag == false){
        if(event.preventDefault){
            event.preventDefault();
        }else{
            event.returnValue = false; // for IE as dont support preventDefault;
        }
        alert(message);
    }

    return flag;
}

DEMO

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面