[英]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.