Saya perlu menguji apakah nilai formulir onsubmit
adalah fungsi. Formatnya biasanya onsubmit="return valid();"
. Apakah ada cara untuk mengetahui apakah ini suatu fungsi, dan apakah dapat dipanggil? Menggunakan typeof hanya mengembalikan bahwa itu adalah string, yang tidak banyak membantu saya.
EDIT : Tentu saja, saya mengerti bahwa "return valid ();" adalah sebuah string. Saya telah replace
melakukannya ke "valid ();", dan bahkan "valid ()". Saya ingin tahu apakah salah satu dari itu adalah fungsi.
EDIT : Berikut beberapa kode, yang dapat membantu menjelaskan masalah saya:
$("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 : Ini kode baru. Sepertinya saya masih harus menggunakan eval, karena memanggil form.submit () tidak mengaktifkan onsubmits yang ada.
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;
}
} );
Saran tentang bagaimana melakukan ini dengan lebih baik?