Мені потрібно перевірити, чи є значення форми onsubmit
функцією. Формат зазвичай onsubmit="return valid();"
. Чи є спосіб визначити, чи є це функцією, і чи можна її викликати? Використання typeof просто повертає, що це рядок, що мені не надто допомагає.
EDIT : Звичайно, я розумію, що "return valid ();" є рядком. Я replace
звів це до "valid ();" і навіть "valid ()". Я хочу знати, чи є якась із цих функцій.
EDIT : Ось деякий код, який може допомогти пояснити мою проблему:
$("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;
}
} );
EDIT 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;
}
} );
Пропозиції щодо того, як зробити це краще?