我需要将jquery对话框的标题发送到服务器,是否可以在不遍历DOM的情况下检索它并找到?
我知道(<span class="ui-dialog-title"></span>
)可以使用jQuery检索,但我想知道是否有更好的方法。
$(c[0]).html(html).dialog({
title: "Brief Country List",
resizable: false,
draggable: false,
width: 900,
modal: true,
autoOpen: true,
buttons: {
Done: function () {
Neptune.BriefCountrySection.SaveCountry();
},
Export: function () {
$.ajax({
type: 'POST',
url: '/Briefs/ExportCsv',
data: /*Get the title here*/,
dataType: 'JSON',
contentType: 'application/json; charset=utf-8',
success: function (res) {
if (res.Success) {
var item = ko.utils.arrayFirst(self.Countries(), function (i) {
return i.ListID() == self.SelectedCountryListID();
});
if (item != null) {
self.Countries.remove(item);
}
}
else {
Neptune.ShowAlert({ content: res.FriendlyErrorMessage });
}
},
error: function (jqXHR, status, err) {
Neptune.ShowAlert({ content: status });
}
});
}
}
});
}
答案 0 :(得分:5)
您可以通过致电
来解决这个问题var title = $( ".selector" ).dialog( "option", "title" );
请参阅http://api.jqueryui.com/1.9/dialog/#option-title
这些选项包含在dom元素
的数据中$("div#dialog").data("uiDialog").options.title
我不建议使用第二种方式,因为它可能依赖于jQuery版本并在将来进行更改,它只是说明它是如何工作的。
当然,调整选择器以选择正确的对话框,如果从对话框按钮调用此ajax,那么它应该是$(this)