我需要测试表单的值是否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()不会触发现有的onsubmit。
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;
}
} );
关于如何更好地做到这一点的建议?