簡體   English   中英

Javascript 彈出 windows

[英]Javascript pop-up windows

我正在使用 javascript 制作過濾器,但問題是每當我在過濾器中輸入內容時,javascript window 就會彈出,甚至在它開始過濾之前。 我的計划是在我發現沒有任何內容與輸入匹配時彈出 window,但問題是沒有任何變化,或者 window 在過濾之前彈出。 HTML 代碼:

{% extends "layout.html" %} 
{% block content %}
<div style="text-align:center"><h1>查找患者</h1></div>
<script>
  document.addEventListener('contextmenu', event => event.preventDefault());
  event.preventDefault()
  </script>
</head>
<body>

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="請輸入患者姓名..." title="Type in a name">

<ul id="myUL">
  {% for item in values %}
  <div class=content-section">
    <li><a href="/patient-info/{{ item.name }}">患者姓名: {{ item.name }} | 性別: {{ item.gender }} | 年齡: {{ item.age }} | 手機號: {{ item.number }}</a></li><br>
  </div>
{% endfor %}
</ul>

<script>
function myFunction() {
    var input, filter, ul, li, a, i, txtValue;
    input = document.getElementById("myInput");
    filter = input.value.toUpperCase();
    ul = document.getElementById("myUL");
    li = ul.getElementsByTagName("li");
    for (i = 0; i < li.length; i++) {
        a = li[i].getElementsByTagName("a")[0];
        txtValue = a.textContent || a.innerText;
        if (txtValue.toUpperCase().indexOf(filter) > -1) {
            li[i].style.display = "";
        } else { 
            li[i].style.display = 'none'
             alert("找不到此病人"); 
        }
    }
}
</script>
{% endblock content %}

改變你的邏輯如下,

function myFunction() {
var input, filter, ul, li, a, i, txtValue;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
ul = document.getElementById("myUL");
li = ul.getElementsByTagName("li");
// Adding a new flag variable to verify whether a match found or not
var nothingFound = true;
for (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName("a")[0];
    txtValue = a.textContent || a.innerText;
    if (txtValue.toUpperCase().indexOf(filter) > -1) {
        li[i].style.display = "";
        // you found something , so set nothingFound to false
        nothingFound = false;
    } else { 
        li[i].style.display = 'none'
        // Remove the below alert
        // alert("找不到此病人"); 
    }
}
// Raise Alert only when nothingFound  is still true
if(nothingFound ) {
  alert("找不到此病人"); 
}

}

簡單的邏輯在初始階段可能很難。 嘗試研究類似算法的故事/策略將在初始階段對我們有所幫助。 以后我們就不需要了。

暫無
暫無

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

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