Necesito probar si el valor de un formulario onsubmit
es una función. El formato suele ser onsubmit="return valid();"
. ¿Hay alguna forma de saber si se trata de una función y si se puede llamar? Usar typeof solo devuelve que es una cadena, lo que no me ayuda mucho.
EDITAR : Por supuesto, entiendo que "return valid ();" es una cuerda. Lo he replace
reducido a "válido ();", e incluso "válido ()". Quiero saber si alguno de esos es una función.
EDITAR : Aquí hay un código, que puede ayudar a explicar mi 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;
}
} );
EDITAR 2 : Aquí está el nuevo código. Parece que todavía tengo que usar una evaluación, porque llamar a form.submit () no activa los onsubmits existentes.
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;
}
} );
¿Sugerencias sobre posiblemente cómo hacer esto mejor?