gpt4 book ai didi

javascript - 使用 jquery 的 AJAX 的外部 scripts.js 在 HTMLInputElement.onkeyup 处返回 Uncaught ReferenceError

转载 作者:行者123 更新时间:2023-11-30 20:37:36 24 4
gpt4 key购买 nike

我花了大半天的时间来寻找这个问题的答案,我就是不能全神贯注。我有一个需要 head 元素的 Index.php。头部元素:

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<link rel="stylesheet" href="requires/style.css" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="requires/scripts.js"></script>
<title>Frontends</title>
</head>

<body>
<div class="grid-container">

<div class='header' style="background-color: #0059B3;">
<a href='index.php'>
<img src="assets/hhe logo.PNG"/>
</a>
</div>

这是 index.php 文件所必需的,该文件如下所示:

<?php
require_once 'requires/head.html';
require 'requires/connect.php';
$string = "";
?>
<script type="text/javascript">

</script>
<div class='content' style='border-radius: 4px;'>

<div class="formcentre">
<input class="searchform" type="text" id="search" placeholder="Søger så snart du skriver." onkeyup="submitter();" autocomplete="off"/>
</div>

<div class='menu' style=' margin-top:10px;'>
<dl>
<dt>Tilføj</dt>
<dd>
<a href='opret.php'>Artikel</a><br>
<a href="addnew.php">Enhed</a><br>
<a href="newscim.php">Kategori</a><br>
</dd>
<dt>Slet</dt>
<dd>
<a href="slet.php">Enhed</a><br>
<a href="sletkategori.php">Kategori</a>
</dd>
</dl>
</div>

<table id="results">

</table>

<a href="#" class="scrollToTop">⌃</a>

</div>

</div>
<script type="text/javascript" src="requires/scripts.js"></script>
</body><!--Is opened in the reuired head.html-->
</html><!--Is opened in the reuired head.html-->

当然有一个看起来像这样的 scripts.js 文件:

function goBack() {
window.history.back();
}

function submitter() {
var search = document.getElementById("search").value;
/*AJAX the searchstring*/
$.ajax({
type: 'post',
url: 'ajax/searcher.php',
data: { searchString : search },
success: function(response){
$('#results').html(response);
}
});
return false;
}
$(document).ready(
function submitter() {
var search = document.getElementById("search").value;
/*AJAX the searchstring*/
$.ajax({
type: 'post',
url: 'ajax/searcher.php',
data: { searchString : search },
success: function(response){
$('#results').html(response);
}
});
return false;
}

function(){

//Check to see if the window is top if not then display button
$(window).scroll(function(){
if ($(this).scrollTop() > 20) {
$('.scrollToTop').fadeIn();
} else {
$('.scrollToTop').fadeOut();
}
});

//Click event to scroll to top
$('.scrollToTop').click(function(){
$('html, body').animate({scrollTop : 0},800);
return false;
});

});

这一切都很好,我遇到了这个问题,当我尝试搜索任何东西时都会遇到这个特定的错误:

未捕获的 ReferenceError:未在 HTMLInputElement.onkeyup (index.php:27) 中定义提交者

所以问题是:我不应该这样做吗?

编辑:我想补充一点,显然浏览器可能会缓存一个 JS 文件。所以,是的,清除缓存。这就是真正的技巧,包括标记解决方案中的第四点。非常感谢您的帮助。

最佳答案

拜托,让我们做两件事:

  1. 不要混合使用 JavaScript 和 jQuery(尽管两者都是 JavaScript)。
  2. 使用不引人注目的代码。

这些是我所做的更改:

  1. 从元素中删除 onkeyup:

    <input class="searchform" type="text" id="search" placeholder="Søger så snart du skriver." autocomplete="off"/>
  2. 使用 documentready 事件添加事件监听器:

    $(function () {
    $("#search").keyup(function () {
    submitter();
    });
    });

    更好的是,你可以这样做:

    $(function () {
    $("#search").keyup(submitter);
    });

    感谢Chris G .

  3. 使用单一方式:

    function submitter() {
    $.ajax({
    type: 'post',
    url: 'ajax/searcher.php',
    data: {
    searchString: $("#search").val()
    },
    success: function(response) {
    $('#results').html(response);
    }
    });
    return false;
    }
  4. 删除 submitter() 函数定义的重复出现。在 documentready 事件中只有一个。

关于javascript - 使用 jquery 的 AJAX 的外部 scripts.js 在 HTMLInputElement.onkeyup 处返回 Uncaught ReferenceError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49650644/

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