폼의 값이 onsubmit
함수 인지 테스트해야 합니다. 형식은 일반적으로 onsubmit="return valid();"
. 이것이 함수인지, 호출 가능한지 알 수있는 방법이 있습니까? typeof를 사용하면 문자열이라는 것을 반환하므로별로 도움이되지 않습니다.
편집 : 물론, "유효한 반환 ();" 문자열입니다. 나는 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 () 호출은 기존 onsubmits를 실행하지 않기 때문에 여전히 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;
}
} );
이 작업을 더 잘 수행하는 방법에 대한 제안?