日期:2014-05-16  浏览次数:20322 次

我在写个追加onsubmit的函数框架(附code),遇到问题,高手入。
> >   story:  
form表单的onsubmit方法,通常时这样调用
<form   name=xx   onsubmit= "retrun   func() "> </form>
但当我有多个函数要执行的时候,通常大家会把其它的函数调用追加到func的底部,但这样会使不同的funciton之间耦合。

> >   resolve:
我现在获得form对象,然后获得它的onsubmit对象,追加新的function到onsubmit中。注:跟《javascript编程艺术》学的。呵呵

> >   question
我现在已经成功追加funciton到onsubmit方法中,但执行第一个function失败后,它不中止,还继续执行后面的function。
如下code:
test()方法return   false;但程序仍然继续。

这个return应该加在哪里呢?难得我这个小的框架不能成功吗?
==========
附code:


<script>
//   追加新的function到onsubmit中
function   addfuncToSubmit(func)   {
var   validateForm   =   document.getElementById( "testForm ");

var   oldSubmit   =   validateForm.onsubmit;
if   (typeof   validateForm.onsubmit   !=   'function ')   {
validateForm.onsubmit   =   func;
}   else   {
validateForm.onsubmit   =   function()   {
oldSubmit();
func();
}
}
}
window.onload   =   function()   {
addfuncToSubmit(test);
addfuncToSubmit(a);
addfuncToSubmit(b);
}

function   a(){   alert( "a ");}
function   b(){   alert( "b ");}
function   test(){   return   false;}

</script>

<body>
<form   id= "testForm ">
<input   type=submit>
</form>
</body>

------解决方案--------------------
validateForm.onsubmit = function() {
oldSubmit();
func();
}
改为
validateForm.onsubmit = function() {
return oldSubmit()||func();
}


------解决方案--------------------
window.onload = function() {
var r = addfuncToSubmit(test);
if (!r) return;
addfuncToSubmit(a);
addfuncToSubmit(b);
}