我在写个追加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);
}