在动态生成的HTML中没有“tab to move to next input element”?

时间:2017-02-03 15:55:18

标签: javascript jquery html

我有一些javascript是在用户点击按钮时生成的:

htmlstring  = ''+          
'<div class="input_holder">'+
'<div class="as_input_holder"><input tabindex="1" class="as_input form-control-small" id="name">'+
'<div class="as_input_holder_footer">Name</div>'+
'</div>'+
'<div class="as_input_holder"><input tabindex="2" class="as_input form-control-small" id="number">'+
'<div class="as_input_holder_footer">Number</div>'+
'</div>'+
'<div class="as_input_holder"><input tabindex="3" class="as_input form-control-small" id="rank">'+
'<div class="as_input_holder_footer">Rank</div>'+
'</div>'+                                   
'</div>';

$('#as_body').html(htmlstring);

as_body id已经在另一个动态生成的javascript窗口中(因此当页面加载时它不存在),并且代码几乎完美,但我不能我的生活从输入字段到输入字段工作。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为问题在于,当您动态添加tabIndexs时,浏览器无法识别该属性。我建议从动态生成的脚本中删除tabindex属性。当您将“htmlString”附加到DOM时,查找新插入的条目“as_input_holder”迭代它们并添加tabIndex

var tabIndex = 1;
$("#as_body").find('.as_input_holder input').each(function(){
    $(this).attr('tabIndex', tabIndex);
    tabIndex++;
})

这样你就可以将tabIndex附加到你的JS对象上,这应该适用于理论:)。我没有测试它只是一个建议,但我认为这将解决你的问题。

祝你好运!