Jquery 在不使用ID'的情况下,一次一个地将多个文本字段作为目标,而不是一次将所有文本字段作为目标;s

Jquery 在不使用ID'的情况下,一次一个地将多个文本字段作为目标,而不是一次将所有文本字段作为目标;s,jquery,ajax,Jquery,Ajax,我还没有完成,但我计划根据用户输入用php生成文本字段。所以,如果他们输入3,那么他们应该得到3个文本字段来填充等等 我可以选择一个类或输入,而不是给每个文本字段一个ID(我必须应用代码对文本字段进行编号,并根据它们选择的编号进行增量)?我曾经尝试过这样做,但是使用ajax搜索,结果会出现在所有文本字段中,而不仅仅是他们输入的文本字段 <div class="form-group"> <input type="text" name="name" auto

我还没有完成,但我计划根据用户输入用php生成文本字段。所以,如果他们输入3,那么他们应该得到3个文本字段来填充等等

我可以选择一个类或输入,而不是给每个文本字段一个ID(我必须应用代码对文本字段进行编号,并根据它们选择的编号进行增量)?我曾经尝试过这样做,但是使用ajax搜索,结果会出现在所有文本字段中,而不仅仅是他们输入的文本字段

    <div class="form-group">
        <input type="text" name="name" autocomplete="off">
        <div class="result"></div>
    </div>
    <div class="form_group">
        <input type="text" name="name" autocomplete="off">
        <div class="result"></div>
    </div>


$(document).ready(function(){
    $("input").keyup(function(){
        $(".loader").show();
        var input = $(this).val();
        if (input.length >3){
              $.ajax({
                  type: 'POST',
                  url: 'insert-ajax.php',
                  data: {name:input},
                  success: function(data){

                      if(!data.error) {
                      $(".result").html(data);
                      $(".loader").hide();
                      }
                  }

              });
            } 

                if (input.length <1) {
                    $(".loader").hide();
                    $(".result").html("");
                }
        });

        $(".result").on( "click", "li", function() {
                console.log($(this).text());
            $("input").val($(this).text());

            });

    });

$(文档).ready(函数(){
$(“输入”).keyup(函数(){
$(“.loader”).show();
var输入=$(this.val();
如果(输入长度>3){
$.ajax({
键入:“POST”,
url:“insert ajax.php”,
数据:{name:input},
成功:功能(数据){
如果(!data.error){
$(“.result”).html(数据);
$(“.loader”).hide();
}
}
});
} 
如果(input.length尝试将

$('input').val($this().text);
在您的keyup函数中,如

$(this).text(data);
而不是

$('.result').html(data);

有了jQuery对象,您可以在这里使用大量的遍历函数。据我所知,在每个
.results
div中,您都有一个无序列表,您希望能够单击该列表中的
li
,并让最近的文本字段填充一个值。如果我是对的,您可以使用
.closest()
函数获取该
li
的祖先
.results
div
,然后使用
.sibbins()
函数获取最近的输入字段。例如:

$(".result").on( "click", "li", function() {
    console.log($(this).text());
    $(this).closest(".result").siblings("input").val($(this).text());
});

有点混乱,但这会起作用。也就是说,我不知道为什么要在keyup处理程序中执行此操作。这可能会导致为
li
标记添加多个点击处理程序。

谢谢Ananth,我正在使用keyup,因为当用户开始键入时,我希望加载程序开始显示。这是我使用keyup的主要原因。我将我一回到我的开发机器前,就开始编写代码。