Ich muss testen, ob der Wert eines Formulars onsubmit
eine Funktion ist. Das Format ist normalerweise onsubmit="return valid();"
. Gibt es eine Möglichkeit festzustellen, ob dies eine Funktion ist und ob sie aufrufbar ist? Die Verwendung von typeof gibt nur zurück, dass es sich um eine Zeichenfolge handelt, was mir nicht viel hilft.
EDIT : Natürlich verstehe ich, dass "return valid ();" ist eine Zeichenfolge. Ich habe replace
es auf "valid ();" und sogar auf "valid ()" reduziert. Ich möchte wissen, ob eine davon eine Funktion ist.
EDIT : Hier ist ein Code, der mein Problem erklären kann:
$("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 immer noch eine Auswertung verwenden muss, da der Aufruf von form.submit () keine vorhandenen Onsubmits auslöst.
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, wie dies möglicherweise besser gemacht werden kann?