【问题标题】:ASP.NET MVC - Get Checkbox without IDASP.NET MVC - 获取没有 ID 的复选框
【发布时间】:2019-04-22 16:13:20
【问题描述】:

我有这段代码可以创建一个包含复选框的表,而我的复选框没有 ID,我只是希望他们在选中或未选中时给我行中当前人的姓名,我正在尝试使用 OnChecked 函数执行此操作,但它不起作用。

这是我的代码:

 <table id="table" class="table table-bordered table-responsive table-hover table-bordered">

                                        <tr>

                                            <th align="center">Nome</th>
                                            <th align="center">Envia Mensagem</th>
                                            <th align="center">Envia Emails</th>
                                            <th align="center">Remover</th>
                                        </tr>
                                        @foreach (var esp in ViewBag.Json1)
                                        {
                                            <tr>


                                                <td>@esp.Nome</td>
                                                @if (@esp.NotificacaoEmail == "True")
                                                {

                                                    <td align="center"><input class="minimal" onclick="FillBooks(CURRENT LINE NAME);" type="checkbox" checked="checked"></td>
                                                }
                                                else
                                                {
                                                    <td align="center"><input class="minimal" type="checkbox"></td>
                                                }
                                                @if (@esp.NotificacaoAlerta == "True")
                                                {
                                                    <td align="center"><input class="minimal" type="checkbox" checked="checked"></td>
                                                }
                                                else
                                                {
                                                    <td align="center"><input class="minimal" type="checkbox"></td>
                                                }
                                                <td>
                                                    <button type="button" class="btn btn-block btn-danger">Remover</button>
                                                </td>

                                            </tr>
                                        }
                                    </table>

这是我的 Javascript:

 function myFunction(val) {
        alert(val);

    }

当我将复选框更改为真或假时,我没有收到警报,我不知道为什么,有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: jquery html asp.net-mvc


    【解决方案1】:

    您可以对表格中的所有复选框应用 onchange 侦听器,并查看它是被选中还是未选中,如下所示:

    $("#table").on("change", "input[type=checkbox]", function () {
        if ($(this).is(":checked")) {
            // This checkbox was just checked
        } else {
            // This checkbox was just unchecked
        }
    });
    

    下面的工作 sn-p:

    $("#table").on("change", "input[type=checkbox]", function () {
        var name = $(this).parents("tr").children().first().text();
        if ($(this).is(":checked")) {
            // This checkbox was just checked
            alert(name + " is checked");
        } else {
            // This checkbox was just unchecked
            alert(name + " is unchecked");
        }
    });
    
    for (var i = 0; i < 5; i++)
      $("#table").append("<tr><td>Name " + (i + 1) + "</td><td><input type=\"checkbox\" /></td></tr>")
      
     setTimeout(function () {
       for (var i = 5; i < 10; i++)
        $("#table").append("<tr><td>Name " + (i + 1) + "</td><td><input type=\"checkbox\" /></td></tr>")
     }, 5000)
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <table id="table"></table>

    【讨论】:

    • 似乎是一种很好的方法,但它没有触发,我不知道为什么。我是这样做的: $(document).ready(function () { $("#table2").find("input[type=checkbox]").on("change", function () { if ($ (this).is(":checked")) { alert("checked") } else { alert("unchecked") } }); }
    • 您的输入或表格是否动态添加到页面中?您使用的表格 ID 与您最初的帖子不同
    • 我的表的输入是动态添加的
    • 好吧,我已经更新了适用于动态输入的答案
    • 不确定你是否还需要这个,但我在答案中添加了一个 sn-p,当每个复选框被选中时都会发出警报
    【解决方案2】:

    在 jQuery 中获取复选框,例如:

    let checkboxes = $("input[type='checkbox']");
    //you can debug after like 
    console.log(checkboxes);

    所以在 Javascript 中你可以有这样的复选框:

    let checkboxes = document.querySelectorAll("input[type='checkbox']");
    // to debug 
    console.log(checkboxes);

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2015-05-28
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      相关资源
      最近更新 更多