在jQuery ajax加载父文档后Javascript无法正常工作

时间:2011-06-23 08:02:02

标签: javascript jquery ajax

在上下视图中,我正在尝试通过经过验证的表单(使用jQuery-validate)上传图像(在目标iFrame中)。之后,iFrame上传图像的PHP脚本重新加载父文档以刷新图像列表,从而产生ajax加载:

$('#content', window.parent.document).load(...);

之后,标签之间的父文档javascript代码不起作用,因此验证的表单失败,当我再次提交表单时,只需带我索引。

任何人都可以帮我一些吗?

来自西班牙的问候

1 个答案:

答案 0 :(得分:1)

如果您的表单位于#content中,则应考虑覆盖表单提交事件,如果它未正确提交并实施您希望在javascript中执行的操作。见http://api.jquery.com/submit/

要初始化动态加载元素的验证,请尝试使用

    var element = "#content form";
    $(element).valid();
    $(element).find("input").each(function () {
        $(this).blur(function () {
            $(this).valid();
        });
    });
    $(element).find("select").each(function () {
        $(this).change(function () {
            $(this).valid();
        });
    });

如果您使用不引人注目的验证,请参阅http://xhalent.wordpress.com/2011/01/24/applying-unobtrusive-validation-to-dynamic-content/Validate dynamically added control

更新:我忘了提及,你在$(document).ready函数中执行的所有javascript都是在文档加载时执行的,因此不会在动态ajax加载的内容上执行,所以如果你需要附加datepicker等,那么你加载内容后必须这样做(在$ .ajax的成功函数中)