ฉันต้องการทดสอบว่าค่าของฟอร์มonsubmit
เป็นฟังก์ชันหรือไม่ onsubmit="return valid();"
รูปแบบที่เป็นปกติ มีวิธีที่จะบอกได้หรือไม่ว่านี่คือฟังก์ชันและสามารถเรียกใช้ได้หรือไม่? การใช้ typeof เพียงแค่ส่งกลับว่าเป็นสตริงซึ่งไม่ได้ช่วยอะไรฉันมากนัก
แก้ไข : แน่นอนฉันเข้าใจว่า "return valid ();" เป็นสตริง ฉันได้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 : นี่คือรหัสใหม่ ดูเหมือนว่าฉันยังต้องใช้ eval เนื่องจากการเรียก form.submit () ไม่เริ่มการส่งข้อมูลที่มีอยู่
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;
}
} );
ข้อเสนอแนะเกี่ยวกับวิธีการทำสิ่งนี้ให้ดีขึ้นหรือไม่?