Javascript 序列化表单在引导模式下不起作用

Javascript 序列化表单在引导模式下不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图使用jquery/ajax在对话框中序列化表单,但表单提交正常,而不是通过ajax,以下是我的javascript: $('.modal-content').on('submit', "send_pm", function() { $.ajax({ type: $(this).attr('method'), url: $(this).attr('action'), headers: { 'X-Requested

我试图使用jquery/ajax在对话框中序列化表单,但表单提交正常,而不是通过ajax,以下是我的javascript:

$('.modal-content').on('submit', "send_pm", function() {
    $.ajax({
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        headers: {
            'X-Requested-With': 'XMLHttpRequest'
        },
        dataType: 'json',
        success: function(data) {
            if (!data.success) {
                $.notify(data.error, "error");
            } else {
                $('#globalModal').dialog("close");
                $.notify(data.success, "success");
            }
        }
    });
    return false;
});
我的对话框

<div class="modal" id="globalModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-body">
             </div>
        </div>
    </div>
 </div>

我在jquery上返回false,因此它应该正常提交,这是我的表单:

<form action="<?php echo config::get('URL'); ?>messages/send_message" method="POST" id="send_pm">
    <div class="panel-default m-t-20">
        <div class="panel-body p-t-30">
            <div class="form-group" data-intro="<?php echo Tutorials::tutorial('message_compose_sender_to'); ?>" data-step="2">
                <input type="text" class="form-control" value="<?php echo system::escape($this->to); ?>" id="recipient" name="to">
            </div>
            <div class="form-group" data-intro="<?php echo Tutorials::tutorial('message_compose_subject'); ?> " data-step="3">
                <input type="text" class="form-control" name="subject" value="<?php echo system::escape($this->subject); ?>" placeholder="Subject">
            </div>
            <div class="form-group" data-intro="<?php echo Tutorials::tutorial('message_compose_message_body'); ?> " data-step="4" data-position="top">
                <textarea id="compose-textarea" name="message" class="form-control" style="height: 300px">
                    <?php echo System::wysiwyg($this->
                            message); ?>
                </textarea>
            </div>
            <div class="pull-right" data-intro="<?php echo Tutorials::tutorial('message_compose_discard_message'); ?>" data-step="1">
                <button type="submit" class="btn btn-purple waves-effect waves-light"><span><?php echo System::translate("Send"); ?>
                            </span><i class="icon-mail-send"></i></button>
            </div>
        </div>
    </div>
</form>

据我所见,.modal content是一个div&send\u pm应该是表单的名称,而表单不在.modal content div内

因此,请使用$(document).on来代替$('.modal content')。on。 您可以使用合适的选择器来代替文档


另外,正如其他人在评论中指出的那样,使用#send_pm

您在委托处理程序中的
表单
上缺少id选择器:
$('.modal content')。在('submit',“#send_pm”,function(){
上,即使使用选择器,它似乎仍然正常提交;(AJAX请求是否确实被发送?首先要检查的是事件是否正在执行。附加事件时,页面中是否存在
.modal content
元素?。modal content在header.php文件中,表单在另一个文件create.php中,当我单击header中的链接时,它会打开create.php在上面的模式代码中,在ehaderuse事件中。preventDefault()首先停止正常提交