gpt4 book ai didi

javascript - 在错误的表单字段上自动完成

转载 作者:行者123 更新时间:2023-12-03 07:39:28 25 4
gpt4 key购买 nike

我知道一些 php/html/css 但 javascript 是我需要帮助的地方。我在网络自动完成脚本中找到了它,但这不适用于两个以上的输入字段。

有两个问题需要解决。

  1. 当您在第一个框中键入内容时,自动完成功能会显示在第二个框中。如何使脚本在用户输入的框中显示自动完成?

  2. 我需要在网站上的多个字段上使用相同的自动完成功能。

我使用的 JavaScript 语法是:

var MIN_LENGTH = 2;

$( document ).ready(function() {
$("#keyword").keyup(function() {
var keyword = $("#keyword").val();
if (keyword.length >= MIN_LENGTH) {

$.get( "http://example.com/autofill/auto-complete.php", { keyword: keyword } )
.done(function( data ) {
$('#results').html('');
var results = jQuery.parseJSON(data);
$(results).each(function(key, value) {
$('#results').append('<div class="item">' + value + '</div>');
})

$('.item').click(function() {
var text = $(this).html();
$('#keyword').val(text);
})

});
} else {
$('#results').html('');
}
});

$("#keyword").blur(function(){
$("#results").fadeOut(500);
})
.focus(function() {
$("#results").show();
});

});

最佳答案

为了重复使用相同的自动完成代码,您需要为函数的作用域提供正确的 DOM 元素的上下文。

这是一个带有一些简单 HTML 代码的快速 jsfiddle,但它应该给出如何将相同事件绑定(bind)到多个 dom 结构的基本示例。

DEMO: JSfiddle example

JS

var MIN_LENGTH = 2;

$(document).ready(function() {

$(".keyword").keyup(function() {

var $parent = $(this).parent();
var $results = $parent.find('.results');
var keyword = $(this).val();

if (keyword.length >= MIN_LENGTH) {

$.get("/echo/json/", {
keyword: keyword
})
.done(function(data) {

$results.html('');
data = ['test', 'test2'];
//data = jQuery.parseJSON(data);
$(data).each(function(key, value) {
$results.append('<div class="item">' + value + '</div>');
});

});
} else {
$results.html('');
}
});

});

HTML

<div class="autcomplete">
<input class="keyword" />
<ul class="results"></ul>
</div>

<div class="autcomplete">
<input class="keyword" />
<ul class="results"></ul>
</div>

关于javascript - 在错误的表单字段上自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35468768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com