如何让我的 JS 搜索栏不区分大小写?
How Can I Make My JS Search Bar Be NOT Case Sensitive?
所以我创建了一个网站,您可以在其中上传、下载、删除和预览文件。我还有一个 java-script 函数,可以让用户搜索文件。唯一的问题是,搜索区分大小写。谁能帮我提供一个示例代码,说明我应该如何更改我的脚本,以便它不再区分大小写?我是 ASP.NET 的新手,仍在努力思考。
这是索引页:
@model IEnumerable<Proiect2PracticaClona.Models.Files>
<center>
<h1>Daca nici acu nu merge ... ma sinucid</h1>
<h2>Sa moara mama</h2>
<hr />
@if (User.IsInRole("Admin"))
{
<form methord="post" enctype="multipart/form-data" asp-controller="Home" asp-action="Index">
<input type="file" name="fifile" />
@Html.RadioButton("category", "incepator")
@Html.RadioButton("category", "intermediar")
@Html.RadioButton("category", "admin")
<input type="submit" value="Upload" />
<hr />
</form>}
<div>
File Name:<input id="search" onkeyup="search()" placeholder="cauta"/>
</div>
<table class="table">
@if (User.IsInRole("User"))
{
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link">Incepatori <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link">Avansati</a>
</li>
<li class="nav-item dropdown">
</li>
<li class="nav-item">
<a class="nav-link disabled">Admini</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
}
<tr>
<th>File Name</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.info</td>
<td><a href="@Url.Action("Download","Home",new { filename=item.info })">Download</a></td>
@if (User.IsInRole("Admin"))
{
<td><a href="@Url.Action("Delete", "Home", new { filedel = item.info })">Delete</a></td>
}
<td><a href="/Home/DocumentViewer/@item.info">Viewer</a></td>
</tr>
}
</table>
@section scripts
{
<script>
function search() {
$("tr").each(function (index, value) {
if (index > 0 && !$(this).find("td")[0].innerText.includes($("#search").val())) {
$(this).attr("hidden", true);
} else {
$(this).removeAttr("hidden");
}
console.log(value);
})
}
</script>
}
</center>
可以通过将查询两边的值转换为小写或大写(根据您的偏好。
来取消区分大小写
因此您的搜索逻辑需要更改
if (index > 0 && !$(this).find("td")[0].innerText.includes($("#search").val())) {
为此:
if (index > 0 && !$(this).find("td")[0].innerText.toLowerCase().includes($("search").val().toLowerCase())) {
为什么检查的时候不把两边都转成小写呢。这种情况与 td 块中元素的大小写以及用户插入的文本的大小写无关紧要。
我们在out应用中经常使用这个来做比较。
function search() {
$("tr").each(function (index, value) {
if (index > 0 && !$(this).find("td")[0].innerText.toLowerCase().includes($("#search").val().toLowerCase())) {
$(this).attr("hidden", true);
} else {
$(this).removeAttr("hidden");
}
console.log(value);
})
}
所以我创建了一个网站,您可以在其中上传、下载、删除和预览文件。我还有一个 java-script 函数,可以让用户搜索文件。唯一的问题是,搜索区分大小写。谁能帮我提供一个示例代码,说明我应该如何更改我的脚本,以便它不再区分大小写?我是 ASP.NET 的新手,仍在努力思考。
这是索引页:
@model IEnumerable<Proiect2PracticaClona.Models.Files>
<center>
<h1>Daca nici acu nu merge ... ma sinucid</h1>
<h2>Sa moara mama</h2>
<hr />
@if (User.IsInRole("Admin"))
{
<form methord="post" enctype="multipart/form-data" asp-controller="Home" asp-action="Index">
<input type="file" name="fifile" />
@Html.RadioButton("category", "incepator")
@Html.RadioButton("category", "intermediar")
@Html.RadioButton("category", "admin")
<input type="submit" value="Upload" />
<hr />
</form>}
<div>
File Name:<input id="search" onkeyup="search()" placeholder="cauta"/>
</div>
<table class="table">
@if (User.IsInRole("User"))
{
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link">Incepatori <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link">Avansati</a>
</li>
<li class="nav-item dropdown">
</li>
<li class="nav-item">
<a class="nav-link disabled">Admini</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
}
<tr>
<th>File Name</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.info</td>
<td><a href="@Url.Action("Download","Home",new { filename=item.info })">Download</a></td>
@if (User.IsInRole("Admin"))
{
<td><a href="@Url.Action("Delete", "Home", new { filedel = item.info })">Delete</a></td>
}
<td><a href="/Home/DocumentViewer/@item.info">Viewer</a></td>
</tr>
}
</table>
@section scripts
{
<script>
function search() {
$("tr").each(function (index, value) {
if (index > 0 && !$(this).find("td")[0].innerText.includes($("#search").val())) {
$(this).attr("hidden", true);
} else {
$(this).removeAttr("hidden");
}
console.log(value);
})
}
</script>
}
</center>
可以通过将查询两边的值转换为小写或大写(根据您的偏好。
来取消区分大小写因此您的搜索逻辑需要更改
if (index > 0 && !$(this).find("td")[0].innerText.includes($("#search").val())) {
为此:
if (index > 0 && !$(this).find("td")[0].innerText.toLowerCase().includes($("search").val().toLowerCase())) {
为什么检查的时候不把两边都转成小写呢。这种情况与 td 块中元素的大小写以及用户插入的文本的大小写无关紧要。 我们在out应用中经常使用这个来做比较。
function search() {
$("tr").each(function (index, value) {
if (index > 0 && !$(this).find("td")[0].innerText.toLowerCase().includes($("#search").val().toLowerCase())) {
$(this).attr("hidden", true);
} else {
$(this).removeAttr("hidden");
}
console.log(value);
})
}