Javascript 引导popover更新内容
如何更新bootstrap popover的内容ajax成功后,我特别需要更改输入字段的值,但一旦我关闭popover并单击它,输入字段的原始值就会显示出来?有人能帮我吗Javascript 引导popover更新内容,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,如何更新bootstrap popover的内容ajax成功后,我特别需要更改输入字段的值,但一旦我关闭popover并单击它,输入字段的原始值就会显示出来?有人能帮我吗 <button class="btn btn-primary edit" data-content='<input type="text" id="name" value="some value"> <button class="btn btn-primary save">Save</but
<button class="btn btn-primary edit" data-content='<input type="text" id="name" value="some value">
<button class="btn btn-primary save">Save</button>'>Edit</button>
保存数据后,popover将关闭,当我再次单击“编辑”时,输入框中将显示旧值。请查看随附的popover工作演示,该演示将使用ajax请求的响应进行更新 我删除了您的请求参数,只是为了让演示能够使用mocky.io执行请求 诀窍是使用
.attr('value',text)
而不是.val(text)
。我不太清楚这里发生了什么。也许有人能解释为什么不同。
但是有了attr,它改变了popover,并且工作正常
需要做的另一件事是重新创建popover。我还想销毁第一个爆米花,但这不起作用。所以我又制作了同样的popover
你也可以在这里找到相同的代码
这里的代码中有一个bug。如果从服务器获取数据,然后关闭popover,数据将重置为初始值
我不知道出了什么问题,因为它在JSFIDLE上运行时没有那个bug
更新日期2014年12月4日:
我对代码做了一些改进。现在,popover中有一个关闭按钮,并且数据被存储,所以当popover重新打开时,来自服务器的数据仍然可用
上面提到的bug可能不是一个SO问题,这是因为来自服务器的数据没有正确存储。这一点现在也得到了修正
我还删除了演示中一些不需要的脚本标记,因为工具提示和popover已经包含在Bootstrap3中
更新日期2014年12月5日:
我对代码有另一个改进。
行$(this).parent().find('.close')。click(…)
没有按我所希望的那样工作。我只想将处理程序添加到当前popover的close按钮。但是它将它添加到类.close
的所有元素中。
因为$(this).parent()是body元素。我认为这样做更好:
var current_popover = '#' + $(e.target).attr('aria-describedby');
var $cur_pop = $(current_popover);
$cur_pop.find('.close').click({});
使用aria descripeby您将获得当前popover的id,然后您可以找到该popover的关闭按钮
$(函数(){
var editData='新值';
var dopoover=函数(项目,文本){
$('#name').attr('value',text);//使用set attr而不是val()
//$(“#name”).val(text);//请检查您的HTML标记。data content=“
有问题,按钮的结尾
丢失。@a如果我无法修复,欢迎您编辑它。检查
var current_popover = '#' + $(e.target).attr('aria-describedby');
var $cur_pop = $(current_popover);
$cur_pop.find('.close').click({});