首先有两个页面,暂且设为A和B。B是A的子页面,即A的iframe中是B,A中除了一个iframe还有一个from这个form的id为frm:
这是A:
这是B:
A中js:
B的js:
发现问题:
1. 在A中显示已经声明$('#frm').submit的事件处理函数,但当A中执行$('button').click内的frm.submit();时,并不会执行绑定的submit事件处理函数,而是按照默认的处理方式提交表单,即使用$('#frm').submit()和frm.submit();并不相同。所以在“省厅考勤系统”中,代码如下:
options内的frm.submit();并不会触发下面自定义的$('#'+frm.id).submit事件处理函数,而是正常提交了。
2. 在iframe的子页面中,无法控制父页面表单提交,即使在B中用$(window.parent.document).find('#frm').submit();也无法使用A中自定义的事件处理函数处理,而是按照默认提交方式提交,但使用$(window.parent.document).find('button').click();可正确触发在A中自定义的$('button').click()处理函数,所以有一个解决方案,即若B要提交A中表单,则在A中定义一个type="hidden"的input,为该input绑定自定义点击事件,事件中提交表单,而在B中利用A中该input的点击事件提交A中表单。