onsubmit
值是否为函数。通常格式为 onsubmit="return valid();"
。有没有办法判断它是不是一个函数并且它是否可调用?使用 typeof 只会返回字符串,这对我帮助不大。
编辑: 当然,我知道 "return valid();" 是字符串。我已将其替换为 "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;
}
} );
有可能更好的做法吗?
f
是一个表单实例。您将其作为参数传递给testOnsubmitAndSubmit
函数。(我知道这个问题很老了,但也许我的回答能节省某些人的时间 :) ) - zeroos