如何在一个onsubmit事件上执行两个方法
我项目中有一个bug,点击按钮提交数据时不会出现任何问题,但是回车提交时就出现问题了,
提交数据时必须现得对数据进行验证,然后提交,这是在程序执行的极短的时间内,快速敲击回车键就会造成重复数据提交,
如果在form中添加onsubmit='return num_check()'可以让用户在敲回车提交数据时验证,但没有方式防止重复提交,
如果在form中添加onsubmit='return checkSubmit()'可以让用户防止重复提交,但是没法对数据进行效验。
如果把两个方法写在一个方法里面应该怎么写呀?试了半天也没有如愿。
<SCRIPT LANGUAGE="JavaScript">
var checkSubmitFlg = false;
function checkSubmit() {
if (checkSubmitFlg == true) {
return false;
}
checkSubmitFlg = true;
return true;
}
document.ondblclick = function docondblclick() {
window.event.returnValue = false;
}
document.onclick = function doconclick() {
if (checkSubmitFlg) {
window.event.returnValue = false;
}
}
var str_num_count = 0;
function num_check(){
str_num_1 = document.form3.score.value;
str_num_count = 0;
if(<%=num_flag%>)
{
<%
for(i=1;i<=num_small;i++){
%>
str_num_2_<%=i%> = document.form3.score<%=i%>.value;
str_num_count = str_num_count+parseFloat(str_num_2_<%=i%>);
if(str_num_2_<%=i%>.length<1){alert("小题<%=i%>请输入分数");
return false; }
for (var i=0;i<str_num_2_<%=i%>.length;i++){
cmp_str=".0123456789";
str=str_num_2_<%=i%>.substring(i,i+1)
if (cmp_str.indexOf(str)<0){
alert("小题<%=i%>得分只能输入数字");
return false;
}}
<%}%>
if(parseFloat(str_num_count)!=parseFloat(str_num_1)){alert("小题分数之和必须和该题得分相等!!!"+parseFloat(str_num_count));
return false; }
}
if(str_num_1.length<1){alert("请输入分数");
return false; }
for (var i=0;i<str_num_1.length;i++){
cmp_str=".0123456789";
str=str_num_1.substring(i,i+1)
if (cmp_str.indexOf(str)<0){
alert("该题得分只能输入数字");
return false;
}}
if(parseFloat(str_num_1)><%=lim_score%>){alert("该题分数为:<%=lim_score%>分,批阅的分数不能大于该题分数!!!");
return false; }
checkSubmit();
document.form3.Submit.disabled=true;
document.form3.submit();
}
}
</script>