luocolor 2009-08-23 21:53
浏览 331
已采纳

框架js验证中的onsubmit和jsp中的onsubmit执行顺序的问题

现在使用了一个验证框架,代码如下

initialize : function(form, options){
    this.options = Object.extend(new ValidationDefaultOptions(), options || {});
    this.form = $(form);
    var formId =  ValidationUtils.getElmID($(form));
    Validation.validations[formId] = this;
    if(this.options.onSubmit) Event.observe(this.form,'submit',this.onSubmit.bind(this),false);
    if(this.options.immediate) {
        var useTitles = this.options.useTitles;
        var callback = this.options.onElementValidate;
        Form.getElements(this.form).each(function(input) { 
            Event.observe(input, 'blur', function(ev) { Validation.validateElement(Event.element(ev),{useTitle : useTitles, onElementValidate : callback}); });
        });
    }

这里给jsp的form绑定了一个onsubmit。
因为验证框架只是做一些比如,是否输入的数据满足要求这些的验证,在具体的jsp页面上,在提交时,form的onsubmit="return tosubmit();"还需要做些另外的验证,比如数据是否已经提交。验证是否提交的方法实现是,
var checkded = false;
function tosubmit(){
if(checked){
alert('已经提交了');
return false;
}
....
checked = true;
}

现在遇到的问题是,
实际发现,在jsp上的函数,tosubmit的执行总是在框架绑定的onsubmit前执行。这样就造成了,当因为框架验证没有通过时,checked已经是true了。如果改了输入的数据,再次提交,就会提示说:已经提交了。

查了很多资料,没想到方法。
[b]问题补充:[/b]
你可以把给document.body.onload绑定事件,给这个form设置框架要绑定的onsubmit

---多谢lovewhzlq
不过,没太看明白?

我想的最好是,框架中的代码不进行更改能够达到效果就最好。
[b]问题补充:[/b]

document.getElementsByTagName("form")[0].addEventListener('onsubmit',function(e){
    return test();
},false);

我在onload中加上这个,最终的结果是我的test函数没有运行。
onsubmit换成submit相同的结果。

  • 写回答

4条回答 默认 最新

  • wanghaolovezlq 2009-08-24 08:15
    关注

    document.getElementsByTagName("form")[0].onsubmit=function(e){
    return test();
    };

    直接这样就行了,

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 ROS Turtlebot3 多机协同自主探索环境时遇到的多机任务分配问题,explore节点
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题