0

我正在使用本机 joomla 代码的模态窗口。我正在显示一个表单,该表单用于将邮件从一个用户发送到另一个用户。php,css和js代码在视图的tmpl文件(通过使用JDocument)中,js就是这样;

var $j = jQuery.noConflict();
$j(document).ready(function(){
    $j("#sendMail").click(function(){
        if(document.formvalidator.isValid(this.form)){
            $j("#mailSending").css("display","inline-block");

            $j.ajax({       
                type: \'POST\',
                url: \'index.php?option=mycomponent&tmpl=component&view=members\',
                data: $j("form#mailForm").serialize(),
                success: function(data,xhr,status){
                            $j("#mailSending").css("display","none");
                            $j("#mailMsg").css("display","inline-block");
                            setTimeout(function(){window.parent.SqueezeBox.close()},1000);
                            alert(status);
                         }
            });
        }else{
            $j("#mailMsg").text("'.JText::_('OFFER_EMPTY_FIELDS').'").css("display","inline-block").delay(1000).fadeOut("slow");
        }
    });                 
});';

当我触发单击功能以显示加载图标并执行控制器文件中的任务时,我正在使用 firebug 跟踪 xhr。php文件就这样结束了;

$send =& $mailer->Send();
    if ( $send !== true ) {
        echo 'Error sending email: ' . $send->getMessage();
    } else {
        echo 'Mail sent';
    } 
    exit();

而 php 函数进程结束时,模态窗口内的内容会随着 Mail Sent 的变化而变化。但我想隐藏加载 .gif 并显示一条消息。但是代码不会那样做。任何想法 ?

4

2 回答 2

0

有趣的是,我喜欢 Ricardo 使用 jquery 而不是这个 "$j(document).ready(function(){})" 但关键是我认为用于触发 ajax 的按钮不是设置类型按钮它有按钮标签但没有属性。我认为它尝试了 ajax 和正常的提交过程并且它冲突。

感谢您的帮助,并为我的愚蠢错误感到抱歉。

于 2013-01-25T00:26:01.577 回答
0

使用 ajax 发送表单并将其返回值插入 div 的代码

jQuery(function($) {
    $("form[name='srchForm']").submit(function(){
        $.get($(this).action, $(this).serialize() + "&tmpl=component&limitstart=0", function(data){
            $m =$('#main'); 
            $m.html(data).delay(10);
        });
        return false;
    });
});
于 2013-01-24T22:33:35.227 回答