簡體   English   中英

如何在頁面加載時停止執行某個javascript

[英]How do I stop the execution of a certain javascript on page load

我正在使用查詢自動完成來選擇我從MySQL數據庫中檢索的成員。 這部分代碼正常工作。 然后我寫了一個腳本來獲取所選的值並將其附加到URL並打開它。 腳本可以做到這一點,但它有問題。

第一個問題是當文件加載時,它不會等待自動完成文本輸入改變,但它會在頁面加載時執行。 我可以點擊瀏覽器上的后退按鈕然后再次執行,然后我第三次按下后退按鈕停留在頁面上。 此時我可以在文本輸入中鍵入一個字母,並返回一個選項列表。 然后我可以選擇一個,javascript附加值並打開新頁面,其中包含所請求的信息。

第二個問題是在我從下拉列表中選擇一個成員后,我必須在autocompletechange觸發之前單擊文本輸入字段。 我選擇但在離開文本輸入之前如何才能觸發它?

這是HTML文件:

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
    <script type="text/javascript">
    $(function () {$('#theinput').autocomplete({source: 'search.php'});
    });
 </script>
 </head>
 <body>
   <input type="text" id="theinput" />
   <button type="button" onclick="ClearFields();">Clear</button>
   <script type="text/javascript">
   $(function myFunction ()  {
   $('#theinput').on('autocompletechange change', function () {
   location.href = 'dirlist.php?title=' + document.getElementById('theinput').value    
   }).change();
 });
 function ClearFields() {document.getElementById("theinput").value = "";}
 </script>
 </body></html>

你自己調用change功能,沒有嘗試過嗎?

$(function myFunction ()  {
    $('#theinput').on('autocompletechange change', function () {
        location.href = 'dirlist.php?title=' + 
        document.getElementById('theinput').value    
    }); // <-- no .change() right here!
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM