4

我正在尝试创建一个在输入文本聚焦时弹出的指示器。弹出框的内容是html。

JS

$('.validate').popover({
    html : true,
    trigger : 'focus',
    content : function() {
        return $('#popover-content').html();
    }
});

变化时

$('.validate').change(function() {
    var eval_me = $('.validate').val();
    $('#sample').html(eval_me);
});

的HTML

    <div class="input-prepend">
        <span class="add-on"><i class="icon-lock"></i></span><input type="text" class="validate" data-placement='right' title="Hello World">
    </div>

    <div id="popover-content" style="display: none">
        <div class="row"><label id="sample">This is your div content</label></div>
    </div>

标签内的内容会更新,但弹出框不会。关闭弹出框并再次聚焦输入文本(打开它)显示更新的标签。

任何帮助表示赞赏:)

4

1 回答 1

3

两件事:在change输入失去焦点之前事件不会触发,您可能希望将更新代码绑定到keyup事件。其次,尽管该代码正在更新您的samplediv,但弹出框只是在触发弹出框时获取该数据;如果要更新弹出框的samplediv,则需要将其作为keyup事件处理程序的一部分进行处理。尝试像这样更改该事件处理程序:

$('.validate').keyup(function() {
  var eval_me = $('.validate').val();
  $('#sample').html(eval_me);
  $('.popover #sample').html(eval_me);
});

你应该很好。检查小提琴

编辑:实际上玩了一下,它似乎keyup是一个比 更好的触发器keypress,否则更新会跟踪输入一个字符,但我可能只是在那里遗漏了一些东西。相应地更改了上面的代码。

于 2012-09-25T03:16:00.823 回答