为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript 隐藏/取消隐藏基于文本框 keyup 的 viewbag 项目

Javascript 隐藏/取消隐藏基于文本框 keyup 的 viewbag 项目

撒科打诨 2023-05-25 16:33:59
我希望我的用户在文本框字段中输入他们的登录名,并在下面显示一个单选按钮列表,其中包含与其用户名相关联的患者组。然而,我似乎只能让我的 Viewbag 中的第一个项目工作。下面是我正在使用的js。<script>        var check = function () {                           if (document.getElementById('Username').value ==                         document.getElementById('projects').getAttribute("name"))                  {                             var userName = document.getElementById('Username').value;                             document.getElementsByName(userName)[0].style.display = 'table-row';                     }                  else                  {                     document.getElementById('projects').style.display = 'none';                     }             }            </script>这是正文:<div class="row">        <div class="col-md-8">            <form asp-action="SubmitAttempt" method="post">                <div class="form-group">                    <label name="Username" class="control-label">Enter Username</label>                    <input name="Username" id="Username" class="form-control" required onkeyup="check();"/>                </div>               <div class="form-group">                    <label name="Email" class="control-label">Enter Email Address</label>                    <input name="Email" class="form-control" required />                </div>                <table border="1" style="margin: 5px">                    @if (ViewBag.Subs != null)                    {                        foreach (var subs in ViewBag.Subs)                        {                        <tr id="projects" name="@subs.Username" style="display:none" value="@subs.Username">                            <td><input type="radio" value="@subs.PatientName" name="PatientName" class="form-control"/></td>                            <td>@subs.ProjectName</td>                            <td>&nbsp;</td>                            <td>@subs.PatientSet</td>                        </tr>                        }                    }    我应该在我的 js 中使用循环来检查每个 tr 并与文本输入进行比较吗?
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

我应该在我的 js 中使用循环来检查每个 tr 并与文本输入进行比较吗?


是的,需要用循环来逐个比较。


另外,你的代码有一些错误,我建议不要使用Id选择器,因为相同id的tr有很多,使用Id选择器总是选择第一个。


我做了一些修改,你可以参考下面的代码:


<table border="1" style="margin: 5px">

    @if (ViewBag.Subs != null)

    {

        foreach (var subs in ViewBag.Subs)

        {

            <tr id="projects" name="subsName" style="display:none" value="@subs.UserName">

                <td><input type="radio" value="@subs.PatientName" name="PatientName" class="form-control" /></td>

                <td>@subs.ProjectName</td>

                <td>&nbsp;</td>

                <td>@subs.PatientSet</td>

            </tr>


        }

    }

</table>



<script>


    var check = function () {

        var userName = document.getElementById('Username').value;

        var trs = document.getElementsByName('subsName');

        for (var i = 0; i < trs.length; i++) {

            if (userName == trs[i].getAttribute("value")) {

                trs[i].style.display = 'table-row';

            }

            else {

                trs[i].style.display = 'none';

            }

        }

    }

</script>


查看完整回答
反对 回复 2023-05-25
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信