Testen, ob der Wert eine Funktion ist

Brauche ich, um zu testen, ob der Wert von einem Formular onsubmit ist eine Funktion. Das format ist in der Regel onsubmit="return valid();". Gibt es eine Möglichkeit zu sagen, wenn dies ist eine Funktion, und wenn es kündbar? Mit typeof nur zurück, dass es eine Zeichenfolge, die hilft mir nicht viel.

BEARBEITEN: natürlich, ich verstehe, dass "return valid();" ist ein string. Ich habe replaced bis auf "valid();", und auch "valid()". Ich möchte wissen, ob eine der beiden ist eine Funktion.

BEARBEITEN: Hier finden Sie den code, die möglicherweise helfen, zu erklären, mein problem:

$("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: Hier ist der neue code. Es scheint, dass ich trotzdem ein "eval", weil aufrufende Formular.submit() nicht ausgelöst bestehenden 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;
    }
} );

Vorschläge über möglicherweise, wie das besser zu tun?

InformationsquelleAutor der Frage Glen Solsberry | 2009-04-28

Schreibe einen Kommentar