Devo verificare se il valore di un modulo onsubmit
è una funzione. Il formato è tipicamente onsubmit="return valid();"
. C'è un modo per sapere se questa è una funzione e se è richiamabile? L'uso di typeof restituisce semplicemente che è una stringa, il che non mi aiuta molto.
EDIT : Naturalmente, capisco che "return valid ();" è una stringa. L'ho replace
ridotto a "valid ();" e persino a "valid ()". Voglio sapere se una di queste è una funzione.
EDIT : ecco un po 'di codice, che può aiutare a spiegare il mio problema:
$("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 : ecco il nuovo codice. Sembra che devo ancora usare un eval, perché la chiamata a form.submit () non attiva gli onsubmits esistenti.
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;
}
} );
Suggerimenti su come farlo meglio?