javascript - 动态创建的输入字段的奇怪行为

标签 javascript jquery html dom

我正在尝试动态创建输入文本字段。使用 jquery 我能够生成输入字段,但是每当用户尝试单击任何动态创建的字段时,他的指针会自动移动到第一个字段。现在,只需使用 TAB 键,他就可以导航到特定字段并输入详细信息。

Here是体验我所面对的 fiddle 。

这是代码

HTML

<head>    
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>
</head>

<body>

 <label><div id= "div1"><input  class="address" id="friend1" type="text"></div></label>    
<div id='wrapper2'><div id="button2" class='removebutton'>Remove</div><div id="button">Add!</div></div>        
<div id="submit-button" >GO!</div>
    </body>

JS

$(document).ready(function()
{
          var friends_cnt = 1;

    $('#wrapper2').on('click','#button',function ()   
                        {                 
                            clicknum = 0;
                            if (friends_cnt < 11) 
                            {
                              $('<div  id = div'+(friends_cnt+1)+'><input type="text" class="address"  id="friend' + (friends_cnt+1) + '"></div>').insertAfter('#div'+friends_cnt);        
                              $(function() {
                               $("#friend"+(friends_cnt+1)).autocomplete({
                                  source: function(request, response) {
                                    geocoder.geocode( {'address': request.term }, function(results, status) {
                                      response($.map(results, function(item) {
                                        return {
                                          label:  item.formatted_address,
                                          value: item.formatted_address,
                                          latitude: item.geometry.location.lat(),
                                          longitude: item.geometry.location.lng()
                                        }
                                      }));
                                    })
                                  },
                                });
                              });    
                             friends_cnt++;
                          }
                          else 
                          {

                          }

                        });



                        $('#button2').click(function()  
                        {                      
                           clicknum = 0;
                           if(friends_cnt > 1)
                            {
                               $('#friend'+friends_cnt).remove();
                               $('#div'+friends_cnt).remove();
                               friends_cnt--;
                            }     

                        });

});

最佳答案

原因是html问题。我移动了一个 label 关闭标签,如下所示:

  <div id= "div1"><label></label><input  class="address" id="friend1" type="text" /></div> 

现在指针不跳了,看:

http://jsfiddle.net/g84t4/4/

关于javascript - 动态创建的输入字段的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17388223/

相关文章:

javascript - html5登录localstorage几天

Javascript 根据用户输入值隐藏/显示问题

javascript - div jquery可排序小部件的隐藏部分

javascript - 如果启用了向左浮动,如何在其他 div 上设置一个 div 的动画?

javascript - 如何在nodejs中将数据从服务器发送到客户端?

javascript - jQuery,将成功数据从 AJAX 传递到另一个函数?

CSS 类(求助!)

javascript - 多个select元素在同一个页面时,如何获取正确的selectedIndex?

javascript - 如何在本地javascript文件中使用CDN

javascript - 编写 Javascript 函数以在单击按钮时更改网页的亮度