在变量

时间:2016-05-21 14:44:24

标签: javascript jquery ajax twitter-bootstrap

我有一个加载的bootstrap模式,当它加载它时,从服务器获取表单:

$('#edit-post-modal').on('show.bs.modal', function (e) {
    var postID = e.relatedTarget.dataset.post;

    $.get('edit' + '/' + postID, function (data, status) {
        form.html(data);
    });

    var submitURL = e.relatedTarget.dataset.url;
    form.attr("action", submitURL);
});

我的ajax函数接受alertElement参数,该参数是应该显示警报的元素的ID。

function doAjax(form, alertElement) {

  $.ajax({
     type: form.attr('method'),
     dataType: 'JSON',
     url: form.attr('action'),
     data: form.serialize(),
     success: function (data) {

       alertElement.html(data);

     },
}

我可以像这样调用doAjax()函数:

var form = $('#form-post');
var alertElement = $('#report-alert-field');

// ajax request to server
doAjax(form, alertElement);

正如您所看到的,在完成ajax之后,它应该将警报文本更改为数据库中的文本。如果先前没有从服务器加载警报元素,则它可以正常工作,但如果它是动态的则不起作用。

我该如何解决这个问题?

此外,当我在ajax 成功方法中执行console.log时,我得到了两个不同的东西。

// These two don't output the same thing

    console.log($('#report-alert-field'));
    console.log(alertElement);

console.log($('#report-alert-field'));输出以下内容:

  

[div#report-alert-field,context:document,sector:"#report-alert-field"]   0   :   DIV#报告警报场   上下文   :   文献   长度   :   1   选择   :   "#报告警报场"   的   :   对象[0]

console.log(alertElement)输出以下内容:

  

x.fn.x.init {context:document,selector:"#report-alert-field"}   上下文   :   文献   选择   :   "#报告警报场"   的   :   对象[0]

0 个答案:

没有答案