2015-10-15 45 views
1

当我点击添加行时,textarea会显示。 textarea在keyup上有自动提示的项目。我的问题是第一个显示自动完成。 anothers不工作如何为同一类自动完成

<textarea id="name" class="name" name="name"></textarea><ul></ul> 
<textarea id="name" class="name" name="name"></textarea><ul></ul> 
<textarea id="name" class="name" name="name"></textarea><ul></ul> 

<script type="text/javascript"> 
$(document).ready(function(){ 
$(".name").keyup(function(){ 
    var name = $(this).val(); 
    $.ajax({ 
     url:"ajax.php", 
     type:"POST", 
     data:{name:name}, 
     success:function(res) 
     { 
      $(".name + ul").append("<li class=item>"+res+"</li>"); 
     } 
    }); 
}); 

$("ul").on("click", "li", function(){ 
    var item = $(this).text(); 
    $(".name").val(item); 
    $("ul li").remove(); 
}); 
}); 
</script> 
+0

为什么你对所有3个字段都有相同的'id'和'name'? –

+0

字段会自动生成jquery –

+0

你是什么意思自动?必须有一种方法来提供不同的id名称。请参阅我的回答。 –

回答

0

这里是一个例子,不需要任何id与文本区域相关联。

<textarea class="name" name="name1"></textarea><ul></ul> 
<textarea class="name" name="name2"></textarea><ul></ul> 
<textarea class="name" name="name3"></textarea><ul></ul> 

<script type="text/javascript"> 
$(document).ready(function(){ 
    $(".name").keyup(function(){ 
     var field = $(this); 
     var name = field.val(); 
     $.ajax({ 
      url:"ajax.php", 
      type:"POST", 
      data:{name:name}, 
      success:function(res) 
      { 
       field.next("ul").append("<li class=item>" + res + "</li>"); 
      } 
     }); 
    }); 

    $("ul").on("click", "li", function(){ 
     var li = $(this); 
     var item = li.text(); 
     li.parent('ul').empty().prev('.name').val(item); 
    }); 
}); 
</script> 
+0

当添加一个新行它不工作..帮助我..我用这个添加行\t css-tricks.com/examples/EditableInvoice –

+0

@ManiamuthaKrish你将需要发布你正在使用的代码添加通过编辑您的问题或打开一个新的一个新的行 – cmorrissey

0

尝试

var name = $(this).val(); 
var data = name + "&Sessid=" + Math.random(); 
$.ajax({ 
    url:"ajax.php", 
    type:"POST", 
    data:data, 
    success:function(res) 
    { 
     $(".name + ul").append("<li class=item>"+res+"</li>"); 
    } 
}); 

});

0

首先,为您的textarea更改idname字段。给你的元素赋予相同的id名称不是个好主意。现在

<textarea id="name1" class="name" name="name1"></textarea><ul></ul> 
<textarea id="name2" class="name" name="name2"></textarea><ul></ul> 
<textarea id="name3" class="name" name="name3"></textarea><ul></ul> 

,这个得到ID名称:

var which_id = $(this).attr('id'); 

并使用which_id变量设置为Ajax响应。

$.ajax({ 
    url:"ajax.php", 
    type:"POST", 
    data:{name:name}, 
    success:function(res) 
    { 
     $("#"+which_id+" + ul").append("<li class=item>"+res+"</li>"); 
    } 
});