【问题标题】:How do I stop the execution of a certain javascript on page load如何在页面加载时停止执行某个 javascript
【发布时间】:2018-11-04 00:29:47
【问题描述】:

我正在使用查询自动完成来选择我从 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>

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    你自己调用了change函数,你试过不带吗?

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

    【讨论】:

    • 第一个问题解决了,对第二个问题有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 2017-11-14
    • 2019-04-04
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多