フォームの値がonsubmit関数であるかどうかをテストする必要があります。通常、形式はonsubmit="return valid();"です。これが関数であるかどうか、そしてそれが呼び出し可能かどうかを判断する方法はありますか?typeofを使用すると、それが文字列であることが返されるだけで、あまり役に立ちません。
編集:もちろん、私は「returnvalid();」を理解しています。文字列です。私はreplaceそれを「valid();」、さらには「valid()」にまで絞り込みました。どちらかが機能なのか知りたいです。
編集:これが私の問題を説明するのに役立つかもしれないいくつかのコードです:
$("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;
    }
} );
編集2:これが新しいコードです。form.submit()を呼び出しても既存のonsubmitは起動されないため、まだevalを使用する必要があるようです。
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;
    }
} );
おそらくこれをより良くする方法についての提案?