Je dois tester si la valeur onsubmit
d'une fiche est une fonction. Le format est généralement onsubmit="return valid();"
. Y at-il un moyen de dire si c'est une fonction, et si elle est appelable? Utiliser typeof renvoie juste que c'est une chaîne, ce qui ne m'aide pas beaucoup.Test si la valeur est une fonction
EDIT: Bien sûr, je comprends que "return valid();" est une chaîne. J'ai replace
d jusqu'à "valide();", et même "valide()". Je veux savoir si l'une ou l'autre est une fonction.
EDIT: Voici un code, ce qui pourrait 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, car l'appel à form.submit() ne déclenche pas d'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;
}
});
Suggestions sur éventuellement comment faire mieux?
d'où vient f f. – Art
'f' est une instance de formulaire. Vous le passez à la fonction testOnsubmitAndSubmit en tant qu'argument. (Je sais que cette question est assez ancienne, mais peut-être que ma réponse sauvera quelqu'un d'un certain temps :)) – zeroos