我有一个加载的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]