javascript - JQuery 的事件和非事件复选框

标签 javascript jquery html asp.net-mvc checkbox

我正在使用 ASP.Net MVC 开发 Web 应用程序,并且 HTML 复选框元素有问题。所以这是我的复选框的 ViewModel:

public class ServiceViewModel:ViewModelBase
{
    public virtual string Name { get; set; }
    public virtual bool IsActive { get; set; }

}

我的观点是这样的:

        @model IList<Saloon.ViewModels.ServiceViewModel>

        <ul>
             @for (var i = 0; i < Model.Count; i++)
             {
                <li>
                    <input type="checkbox" class="chk" name="@Model.Name[i]" id="@(i+1)" />
                    <label for="@Model.Name[i]">@Model.Name[i]</label>
                </li>
             }
        </ul>

以及我的用于选中和取消选中复选框的 JQuery 代码:

<script>
$('input[type=checkbox].chk').click(function () {
    if ($(this).is(":checked")) {
        $(this).prop("checked", false);
    } else {
        $(this).prop('checked', true);
    }
});
</script>

但是这个JQuery代码不起作用。即使我尝试过$('input[type=checkbox].chk').change(function () {... 以及我在 Internet 上找到的 JQuery 可用的其他方法,但这些方法也不起作用。

最佳答案

你的代码就快完成了,但是你错过了一件事,document.ready()

您的代码应该可以工作,更改复选框的状态没有任何问题。

相反,您的 .click() 将无法正确初始化,因为 jQuery 未完全加载。好吧,也许还有另一个因素导致无法正确触发事件,但这是我可以从您提供的内容中猜测到的。

<script>
$(document).ready(function() {
    $('input[type=checkbox].chk').click(function () {
        if ($(this).is(":checked")) {
            $(this).prop("checked", false);
        } else {
            $(this).prop('checked', true);
        }
    });
});
</script>

关于javascript - JQuery 的事件和非事件复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30253409/

相关文章:

javascript - 单击按钮在新选项卡上打开链接

javascript - Controller 之间的 $rootscope 并刷新它

javascript - 扩展 div 以具有响应式边框

java - Swing HTML 绘制字符串

javascript - 使用 Phaser 框架将 Javascript 值发送到 PHP

javascript - 将不带分隔符的字符串中的所有字符拆分为带有莲花音符的数组

javascript - 我如何将 2 个不同的特殊字符视为与 jquery/javascript 相同的字符?

javascript - 将 Div 类附加到超链接类——然后在单击时克隆超链接并将其附加到容器

javascript - 使用 SimpleModal 和 jQuery 的 Ajax WordPress 帖子弹出窗口

html - Azure AD B2C 自定义策略社交按钮顺序