在Bootstrap3 popover中为文本字段添加值

Dar*_*ney 2 jquery twitter-bootstrap

问题

我有一个popover,我填充了隐藏元素的内容.当弹出窗口显示时,我想用其他地方包含的数据预填充文本字段.

弹出窗口正确显示文本字段中没有数据.

我尝试着

<!-- change dob1 content -->
<div id="dob1_iq" style="display: none">
    <input type="text" id="iq__dob1-day" value="">
    <input type="text" id="iq__dob1-month" value="">
    <input type="text" id="iq__dob1-year" value="">
</div>
Run Code Online (Sandbox Code Playgroud)

我知道数据就在我在控制台日志中看到的那样:

$('.dob1_iq').popover({
    html : true,
    content: function() {
        return $('#dob1_iq').html();
    }
})
.on('show.bs.popover', function() { 
    console.log('day is ' + $('#qq__dob1-day').val()); // <- this shows value is there in console
    $('#iq__dob1-day').val($('#qq__dob1-day').val()); // stays blank
    $('#iq__dob1-month').val($('#qq__dob1-month').val()); // stays blank
    $('#iq__dob1-year').val($('#qq__dob1-year').val()); // stays blank
});
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

看看它的行动

这是一个看起来很有效的bootply

UPDATE

认为这可能是因为元素不在DOM中我也尝试了以下但是也失败了:

$(document).find("#iq__dob1-day").val($('#qq__dob1-day').val());
Run Code Online (Sandbox Code Playgroud)

更新2

我检查了我试图添加值的元素是否实际存在,它确实存在:

// this gives "does it exist 1"    
console.log('does it exist ' + $('#iq__dob1-day').length);
Run Code Online (Sandbox Code Playgroud)

bos*_*zlo 5

奇怪.无法解释,但如果你想让它工作,你可以使用attr

这很好用:

$('#iq__dob1-day').attr("value", $('#qq__dob1-day').val()); // stays blank
$('#iq__dob1-month').attr("value", $('#qq__dob1-month').val()); // stays blank
$('#iq__dob1-year').attr("value", $('#qq__dob1-year').val()); // stays blank
Run Code Online (Sandbox Code Playgroud)

编辑:val()没有按预期工作,因为ID是重复的.我已经添加了$('#dob1_iq').show();,它解释了发生了什么:http://www.bootply.com/B6ULMiPGbc#