js验证阻止表单提交(表单绑定onsubmit事件)

原始方式:

<form action="http://www.cnblogs.com/zixueit/" onsubmit="return check()">
    <input type="submit" value="提交" />
</form>

<script type="text/javascript">
    function check(){
        if(!confirm(‘确定?‘)){
            return false;
        }
    }
</script>

大多数情况我们需要行为和结构分离,所以我们在html代码中加onclick代码是不合适的,解决方案:

//dom0级事件绑定
<form action="http://www.cnblogs.com/zixueit/">
    <input type="submit" value="提交" />
</form>

<script type="text/javascript">
        onload = function(){
            myform = document.getElementsByTagName(‘form‘)[0];
        myform.onsubmit= function(){
        if(!confirm(‘你确定?‘)){
            return false;
        }
        }
        }
</script>

  

再看看dom2级事件绑定:

myform = document.getElementsByTagName(‘form‘)[0];
    if (myform.addEventListener) {
        myform.addEventListener(‘submit‘, check, false);
    }
    else {//for ie
        myform.attachEvent("onsubmit", check);
    } 

    function check(){
        if(!confirm(‘确定?‘)){
            return false;
        }
    }

  

但是我们测试的时候我们会发现IE下能够阻止表单提交,但是FF、chrome等浏览器并不能阻止表单提交

原因是:Object EventListener:This is an ECMAScript function reference. This method has no return value. The parameter is a Event object.

可见,listener是没有返回值的(写了也不会认),因此我们的check函数的返回值是不起作用的。

解决方案:

function check(ev) {
    if (!confirm(‘确定?‘)) {//验证出错的情况just a demo
        ev = ev || window.event; // Event对象
            if (ev.preventDefault) { // 标准浏览器
                    ev.preventDefault();
            } else { // IE浏览器
                    window.event.returnValue = false;
            }
    }
}

  

 

js验证阻止表单提交(表单绑定onsubmit事件)

时间: 2024-08-06 11:56:15

js验证阻止表单提交(表单绑定onsubmit事件)的相关文章

jquery验证表单 提交表单

问题: jquery中使用submit提交按钮时,当return false后,依然会提交表单. 解决: 使用button按钮,而不是submit按钮 <script type="text/javascript" src="scripts/jquery-2.0.2.js"></script> <script type="text/javascript"> function check(){ var npassw

js防止回车(enter)键提交表单

如何防止回车(enter)键提交表单,其实很简单,就一句话.onkeydown="if(event.keyCode==13)return false;"把这句写在from标签里面就好了. 如果在页面中按Enter键会自动提交的话,可以设置返回值防止自动提交如<input id="q" name="q" type="text" onkeypress="javascript:return gosearch();&q

表单提交(三)——阻止Eneter键提交表单

当用户在文本框中进行编辑时,按下键盘Enter键,会触发表单提交.为了防止这种意外,有一种方法就是拒绝所有表单提交, 然后通过单击指定的提交命令按钮才能提交表单. 首先,将"return false"绑定到表单的onsubmit事件,来阻止所有表单提交. 第二,使用input="button"通过onclick事件,以this.form.submit()方法提交,而不会触发onsubmit事件. 所以不能使用jquery方式$("#myForm"

ajaxSubmit 页面生成的html 中含有表单提交表单方式

$("#form_title").ajaxSubmit({ //页面生成的html 中含有表单提交表单方式 dataType: "json", success : function(obj){ lock_flag = false; if(obj.errno == 0){ lock_flag = false; layer.msg(obj.errdesc); setTimeout(function() { window.location.reload(); },2000

input ,button, textarea 1)使用disabled , 2) 显示值, 3) 表单提交. 4) jquery.form.js ajaxSubmit() 无刷新ajax提交表单.

1.使用disabled input , button  textarea 可以 被 禁用, 禁用的效果 : 1) 上面的点击事件无法使用 --- button       : 下面的 onclick属性 不能使用了. ------------------------- input: ------------------------------ textarea 2. input, textaere 显示 原先 填充的值; input:  写在 value属性上. ---------------

js防止回车(enter)键提交表单及javascript中event.keycode

如何防止回车(enter)键提交表单,其实很简单,就一句话.onkeydown="if(event.keyCode==13)return false;"把这句写在from标签里面就好了. 如果在页面中按Enter键会自动提交的话,可以设置返回值防止自动提交如<input id="q" name="q" type="text" onkeypress="javascript:return gosearch();&q

js XMLHttpRequest + FormData 跨域提交表单上传文件

funUploadFile : function(file){ var self = this; // 在each中this指向没个v 所以先将this保留 var formdata = new FormData(); formdata.append("index", file.index); formdata.append("fileList", file); var xhr = new XMLHttpRequest(); if ("withCreden

用提交按钮提交form问题验证没通过依然提交表单

<form id="sb" action="${pageContext.request.contextPath }/admin/loanContract/addOrUpdate.do" method="post" onsubmit="submitTest();"> <div class="j_dd"> <div class="clearfix"> &l

jquery+ajax验证不通过也提交表单问题处理

这篇文章主要介绍了jquery validationEngine中使用ajax验证不通过也提交表单问题处理,需要的朋友可以参考下 validationEngine给我们为前端的表单验证减少了很大的工作量.大部分情况我们使用validationEngine验证表单的形式有几种方式: 1 使用正常的表单提交.这种情况validationEngine验证不通过是不会提交表单的. 2 使用ajax提交表单,但是没有使用ajax验证. 这种方式也比较简单,在我们使用ajax请求前检查验证是否通过就可以,例