从动态(AJAX)加载的引导模式返回数据
我在Codeigniter应用程序中使用引导模式作为弹出的WYSIWYG文本编辑器。关于加载内容和模式的一切都很好。当model通过AJAX打开时,我甚至可以保存内容 但我想完成的是当我在模式中点击“保存”按钮时。。。我想将值-从动态(AJAX)加载的引导模式返回数据,ajax,jquery,twitter-bootstrap,modal-dialog,Ajax,Jquery,Twitter Bootstrap,Modal Dialog,我在Codeigniter应用程序中使用引导模式作为弹出的WYSIWYG文本编辑器。关于加载内容和模式的一切都很好。当model通过AJAX打开时,我甚至可以保存内容 但我想完成的是当我在模式中点击“保存”按钮时。。。我想将值-$('#wysiwyg').val()-返回到打开模式的页面 触发模式的链接 <a href="/ajax/modals/wysiwyg" class="btn ajax-modal">Write Text</a> HTML模式包装器 <d
$('#wysiwyg').val()
-返回到打开模式的页面
触发模式的链接
<a href="/ajax/modals/wysiwyg" class="btn ajax-modal">Write Text</a>
HTML模式包装器
<div id="ajax-modal" class="modal hide fade" data-backdrop="static" data-keyboard="false" tabindex="-1"></div>
HTML模式正文/内容
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Text Editor</h3>
</div>
<div class="modal-body">
<textarea class="input-block-level" id="wysiwyg" rows="9">Write something...</textarea>
</div>
<div class="modal-footer">
<button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button>
<button id="submit-modal" class="btn btn-success">Save</button>
</div>
&时代;
文本编辑器
写点什么。。。
取消
拯救
提前谢谢。我想我明白你的要求了……有几种方法可以做到这一点。如果您想创建一个更独立的方法,可以使用一个pub/sub框架,比如Amplify。最简单的方法是在创建单击事件之前创建对要填充的元素的引用。像这样:
var controlToPopulate = $("#controlToPopulateId");
$('.ajax-modal').click(function(e) {
e.preventDefault();
var modal = $('#ajax-modal');
var url = $(this).attr('href');
if(url.indexOf('#') == 0) {
$(url).modal('open');
} else {
$.get(url, function(data) {
modal.html(data);
modal.modal();
}).success(function() {
/* boom. loaded. */
modal.find('#submit-modal').click(function() {
controlToPopulate.val(modal.find('#wysiwyg').val());
});
});
}
})) 我想我明白你的要求了……有几种方法可以做到这一点。如果您想创建一个更独立的方法,可以使用一个pub/sub框架,比如Amplify。最简单的方法是在创建单击事件之前创建对要填充的元素的引用。像这样:
var controlToPopulate = $("#controlToPopulateId");
$('.ajax-modal').click(function(e) {
e.preventDefault();
var modal = $('#ajax-modal');
var url = $(this).attr('href');
if(url.indexOf('#') == 0) {
$(url).modal('open');
} else {
$.get(url, function(data) {
modal.html(data);
modal.modal();
}).success(function() {
/* boom. loaded. */
modal.find('#submit-modal').click(function() {
controlToPopulate.val(modal.find('#wysiwyg').val());
});
});
}
})) 当您编写
if(url.indexOf('#')==0)
时,您的意思是if(url.indexOf('#')==1)
indexOf(“#”)
如果字符串中没有出现#
,则返回-1
。当您编写if(url.indexOf(“#”)==0)
时,您的意思是if(url.indexOf(“#”)=-1)
<如果字符串中没有出现#
,code>indexOf(“#”)将返回-1
。您可以尝试以下操作:
var modal = $('#ajax-modal');
// Filter clicks within the modal to those on the save button (#submit-modal)
modal.on('click', '#submit-modal', function(e) {
// Find the wysiwyg within the modal
var wysiwyg = $('#wysiwyg', modal);
// Now do what you want with wysiwyg.val();
if (wysiwyg.length) $('#my_info_div').html(wysiwyg.val());
});
您可以尝试以下方法:
var modal = $('#ajax-modal');
// Filter clicks within the modal to those on the save button (#submit-modal)
modal.on('click', '#submit-modal', function(e) {
// Find the wysiwyg within the modal
var wysiwyg = $('#wysiwyg', modal);
// Now do what you want with wysiwyg.val();
if (wysiwyg.length) $('#my_info_div').html(wysiwyg.val());
});
不,我写对了。我检查
0
的原因是,如果模式内容是内联的,而不是通过URL调用,那么它应该以默认方式加载模式(如所有引导示例所示)。不,我写的是正确的。我检查0
的原因是,如果模式内容是内联的,而不是通过URL调用,那么它应该以默认方式加载模式(如所有引导示例所示)。这在我的模式中进行吗?或者在触发模式的页面上?这在托管#ajax模式容器的页面上(也就是触发模式的页面)。这在我的模式中吗?或者在触发模式的页面上?这会出现在托管#ajax模式容器的页面上(也就是触发模式的页面)。感谢您的回答。它确实有效,但我选择了另一个答案,因为它与我的一些其他代码集成得更好。谢谢你的答案。它确实有效,但我选择了另一个答案,因为它与我的一些其他代码集成得更好。