当我提交网页表单时,我会调用两个函数,如:
<form action="myaction" name="myform" method="post" onsubmit="return submithandler(this) && validate(this)">
javascript:
function submithandler (form) {
// a function that replaces some diacritical marks to the correct form
return true;
};
function validate(form) {
// huge validation code
};
在除Firefox之外的所有浏览器中均可正常使用;这个浏览器执行submithandler(this)部分,但是忽略了validate(this)。如果我像这样(下面)制作表单标签,它会进行验证但忽略submithandler(this)。
<form action="myaction" name="myform" method="post" onsubmit="return validate(this) && submithandler(this)">
有什么想法吗?
编辑:
Firefox问题必须在此脚本中?也许var form = event.target; ?请看这里:Change characters on form submit
//脚本替换表单中所有文本字段内的所有字母(或其他)实例。
function submithandler (form) {
var form = event.target;
var i, l;
for (i = 0, l = form.elements.length; i < l; i += 1) {
if (form.elements[i].type === 'text') {
form.elements[i].value = form.elements[i].value.replace(/Ş/g, 'Ș');
form.elements[i].value = form.elements[i].value.replace(/ş/g, 'ș');
form.elements[i].value = form.elements[i].value.replace(/Ţ/g, 'Ț');
form.elements[i].value = form.elements[i].value.replace(/ţ/g, 'ț');
}
}
return true;
};
答案 0 :(得分:2)
在submithandler函数中调用validate函数:
function submithandler (form) {
// a function that replaces some diacritical marks to the correct form
if(isValid(form)){
return true;
} else{
return false;
}
};
function isValid(form) {
// huge validation code
//validation code: must return true if valid
if(valid){
return true;
} else {
return false;
}
};