Проверка, является ли значение функцией
Мне нужно проверить, является ли значение формыonsubmit
это функция. Формат обычноonsubmit="return valid();"
, Есть ли способ сказать, если это функция, и если она вызывается? Использование typeof просто возвращает, что это строка, которая мне не сильно помогает.
РЕДАКТИРОВАТЬКонечно, я понимаю, что "return valid ();" это строка Яreplace
d до «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;
}
} );
Предложения о том, как сделать это лучше?