gpt4 book ai didi

javascript - 是什么导致这段 javascript 代码按现在的方式运行?

转载 作者:行者123 更新时间:2023-12-02 16:42:32 25 4
gpt4 key购买 nike

我知道 stackoverflow 倾向于回避“文字墙”帖子,但我已经在这上面呆了大约 4 个小时,但我无法弄清楚,所以我想提供尽可能多的信息。

我有一个页面,上面有两个输入表单。每当我向第一个输入按钮添加文本时,附加到第二个输入按钮的 JavaScript 函数就会运行,但我不明白为什么。

在我的标题中,我有两个脚本:

<script type="text/javascript" src="/autocomplete/js/script.js"></script>

其中包含:

function autocomplet() {
var min_length = 0; // min caracters to display the autocomplete
var keyword = $('#country_id').val();
if (keyword.length >= min_length) {
$.ajax({
url: 'capoInstantSearch.php',
type: 'POST',
data: {keyword:keyword},
success:function(data){
$('#country_list_id').show();
$('#country_list_id').html(data);
}
});
} else {
$('#country_list_id').hide();
}
}

// set_item : this function will be executed when we select an item

function set_item(item) {
// change input value
$('#country_id').val(item);
// hide proposition list
$('#country_list_id').hide();

$("#capoInfo").load("capoSingleReturn.php?q="+encodeURIComponent(item));

}

capoInstantSearch.php 看起来像这样:

<?php

function connect() {
return new PDO('code here to connect'}

$pdo = connect();
$keyword = '%'.$_POST['keyword'].'%';
$sql = "SELECT statement is here....";
$query = $pdo->prepare($sql);
$query->bindParam(':keyword', $keyword, PDO::PARAM_STR);
$query->execute();
$list = $query->fetchAll();
foreach ($list as $rs) {
// put in bold the written text
$country_name = str_replace(strtoupper($_POST['keyword']), '<b>'.$_POST['keyword'].'</b>', $rs['quotePartNumber']);
// add new option
echo '<li onclick="set_item(\''.str_replace("'", "\'", $rs['quotePartNumber']).'\')">'.$country_name.'</li>';
}
?>

<script type="text/javascript" src="/autocomplete/js/script2.js"></script>

其中包含:

function compCheck() {
var min_length = 0; // min caracters to display the autocomplete
var bootyTime = $('#comp_id').val();
if (bootyTime.length >= min_length) {
$.ajax({
url: 'capoInstantCompSearch.php',
type: 'POST',
data: {bootyTime:bootyTime},
success:function(data){
$('#comp_list_id').show();
$('#comp_list_id').html(data);
}
});
} else {
$('#comp_list_id').hide();
}
}

// set_item : this function will be executed when we select an item
function set_item(item) {
// change input value
$('#comp_id').val(item);
// hide proposition list
$('#comp_list_id').hide();
$("#compReturn").load("capoCompReturn.php?w="+encodeURIComponent(item));
}

输入框1:

<input id="country_id" type="text" placeholder="Enter a Part Number"
onsubmit="this.value=this.value.toUpperCase()" autocomplete="off" onkeyup="autocomplet()">
<ul id="country_list_id"></ul>

输入框2:

<input id="comp_id" type="text" onkeypress="this.value=this.value.toUpperCase()" 
placeholder="Part Number 2" onkeyup="compCheck()"></h2>
<ul id="comp_list_id"></ul>

最终,autocomplet() 的内容应该放入此 div 中

<div id="capoInfo" class="capoData"></div>

而 compCheck() 的内容应放入

<div id="compReturn" class="blueBorder"></div>

当我在第一个输入框中输入文本时,它会填充 <ul> Country_list_id,当我做出选择时,它会将答案填充到页面上的第二个输入框中,然后执行该代码。我不明白它为什么要这样做,这让我发疯......

最佳答案

这是因为您有两个位于全局范围内的函数,名为“set_item”

关于javascript - 是什么导致这段 javascript 代码按现在的方式运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27389241/

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