J'ai besoin de tester si la valeur de la rubrique onsubmit
est une fonction. Le format est typiquement onsubmit="return valid();"
. Existe-t-il un moyen de savoir s'il s'agit d'une fonction et si elle peut être appelée ? L'utilisation de typeof ne fait que renvoyer qu'il s'agit d'une chaîne de caractères, ce qui ne m'aide pas beaucoup.
EDITAR : Bien sûr, je comprends que "return valid() ;" est une chaîne de caractères. J'ai replace
Je n'ai plus que "valid() ;", et même "valid()". Je veux savoir si l'un ou l'autre est une fonction.
EDITAR : Voici un peu de code, qui peut aider à expliquer mon problème :
$("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 : Voici le nouveau code. Il semble que je doive encore utiliser un eval, parce que l'appel à form.submit() ne déclenche pas les onsubmits existants.
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;
}
} );
Des suggestions sur la manière de mieux faire ?