Bir formun değerinin onsubmit
bir fonksiyon olup olmadığını test etmem gerekiyor . Biçim tipiktir onsubmit="return valid();"
. Bunun bir işlev olup olmadığını ve çağrılabilir olup olmadığını anlamanın bir yolu var mı? Typeof kullanmak sadece bir dizge olduğunu döndürür ki bu bana pek yardımcı olmaz.
DÜZENLEME : Tabii ki, "return valid ();" bir dizedir. Bunu replace
"geçerli ();" ve hatta "geçerli ()" olarak belirledim. Bunlardan herhangi birinin bir işlev olup olmadığını bilmek istiyorum.
DÜZENLEME : Sorunumu açıklamaya yardımcı olabilecek bazı kodlar:
$("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;
}
} );
DÜZENLEME 2 : İşte yeni kod. Görünüşe göre hala bir eval kullanmam gerekiyor, çünkü form.submit () 'i çağırmak mevcut onsubmits'i tetiklemiyor.
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;
}
} );
Bunun nasıl daha iyi yapılacağına dair öneriler?