form表单的onsubmit()问题

之前在项目中为一个表单(from)编写onsubmit()脚本的时候,常常须要验证表单中数据的合法性,因此常会写道:<form action="/admin/addUser.do" method="post" onsubmit="validateForm();">,试图在validateForm()中return false来阻止表单的提交。实际上的效果是即便return false 表单 仍是会提交。后来发现 onsubmit="return validateForm()"就没有问题了。ide

今天在调试项目的bug时,遇到了表单提交前验证的问题,用一个普通的button按钮代替submit按钮,
在提交前触发这个button的onclick事件,在其事件中触发form的submit事件。问题出现了,如下是程序代码:post

<input type="button" name="save" value="保存" onclick="saveProject();"/>google

saveProject()方法以下:spa

function saveProject(){
        var matCategory = document.getElementsByName("matCategory");
        var flag = false;
        for(i=0;i<matCategory.length;i++){
            var checkbox = matCategory[i];
            if(checkbox.checked == true){
                flag = true;break;
            }
        }
        if(flag){
            proForm.submit();
            return;

        }
        alert("请选择产品分类!");
       
    }调试

却发现并无触发form的onsubmit方法,而是直接提交了。奇怪了,难道没有这种方式没法结合form的onsubmit方法吗?后来经过百度和google将saveProject方法改成以下:在表单提交前作了一下验证orm

function saveProject(){
        var matCategory = document.getElementsByName("matCategory");
        var flag = false;
        for(i=0;i<matCategory.length;i++){
            var checkbox = matCategory[i];
            if(checkbox.checked == true){
                flag = true;break;
            }
        }
        if(flag){
            if(document.proForm.onsubmit() == true){
                proForm.submit();
            }
            return;

        }
        alert("请选择产品分类!");
       
    }事件

这个问题耗费了我半个小时,所以记下来但愿下次再也不犯错,不得不说细节决定成功与否!get

相关文章
相关标签/搜索