我一整天都在尝试这个......
我在iframe中有一个表单,它包含用于表单验证的jquery验证。我只是希望当数据无效时,jquery对话框出现在主页面中,出现在top.document中。
这是我在iframe上的代码:
$("#dialog-message", top.document).dialog({
modal: true,
autoOpen: false,
buttons: { Ok: function() {
$(this).dialog('close');
}
}
});
这是一段应该激活对话框的代码:
$("#search-form").validate({
rules: { datapicker: {required: true,dateDE: true}},
debug: true,
messages: {
datapicker: {
required: "És necessari introduïr una data",
date: "S'ha d'afegir una data correcte: dd/mm/aaaa"
}
},
errorPlacement: function(error, element) {
error.prependTo($('#dialog-message', top.document));
},
errorLabelContainer: $("#dialog-message ul", top.document),
showErrors: function () {
$('#dialog-message',top.document).dialog('open');
this.defaultShowErrors();
}
});
所以...这不起作用......如果我尝试这个指令一切正常
$("#dialog-message", top.document).css(...) //works fine!
我认为选择器$ -top.document和对话框函数可能存在一些问题...或者可能不可能使用dialog()来表示不同帧中的div ...
请帮忙! :d提前致谢
答案 0 :(得分:2)
让iframe中的代码引用父代,并调用父代的JavaScript函数,如下所示:
// in iframe code:
parent.doSearchFormValidate();
// parent page has definition for doSearchFormValidate().
function doSearchFormValidate() {
$("#search-form").validate({
...
});
}