我需要测试一个表单的值是否onsubmit
是一个函数。格式通常为onsubmit="return valid();"
. 有没有办法判断这是否是一个函数,以及它是否可调用?使用 typeof 只是返回它是一个字符串,这对我没有多大帮助。
编辑:当然,我理解“返回有效();” 是一个字符串。我把replace
它归结为“valid();”,甚至是“valid()”。我想知道其中任何一个是否是函数。
编辑:这是一些代码,可能有助于解释我的问题:
$("a.button").parents("form").submit(function() {
var submit_function = $("a.button").parents("form").attr("onsubmit");
if ( submit_function && typeof( submit_function.replace(/return /,"") ) == 'function' ) {
return eval(submit_function.replace(/return /,""));
} else {
alert("onSubmit is not a function.\n\nIs the script included?"); return false;
}
} );
编辑 2:这是新代码。看来我仍然必须使用 eval,因为调用 form.submit() 不会触发现有的 onsubmits。
var formObj = $("a.button").parents("form");
formObj.submit(function() {
if ( formObj[0].onsubmit && typeof( formObj.onsubmit ) == 'function' ) {
return eval(formObj.attr("onsubmit").replace(/return /,""));
} else {
alert("onSubmit is not a function.\n\nIs the script included?");
return false;
}
} );
关于如何更好地做到这一点的建议?