我还没有这样做,但我计划根据用户输入使用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());
});
});
答案 0 :(得分:0)
尝试把
$('input').val($this().text);
在您的键盘功能
中$(this).text(data);
而不是
$('.result').html(data);
答案 1 :(得分:0)
使用jQuery对象,您可以获得一组很好的遍历函数。据我了解,在您的每个.results
div中,您都有一个无序列表,并且您希望能够单击该列表中的li
并使最近的文本字段填充值。假设我是对的,您可以使用.closest()
函数为.results
获取祖先div
li
,然后使用{{}获取最近的输入字段1}}功能。如下所示:
.siblings()
有点乱,但这会奏效。也就是说,我不确定你为什么要在一个keyup处理程序中这样做。它可以为$(".result").on( "click", "li", function() {
console.log($(this).text());
$(this).closest(".result").siblings("input").val($(this).text());
});
标记添加多个点击处理程序。