jQuery Selector For "Html.CheckBoxFor"

本文关键字:quot CheckBoxFor Html Selector For jQuery | 更新日期: 2023-09-27 18:07:07

当使用像这样的复选框时,是否有一种方法使用asp.net/jquery来切换div可见性:

<%: Html.CheckBoxFor(m => m.Type) %>

我知道如何做jQuery部分,但我不确定如何确定是否已点击或更改框。我可以添加一些onChange或onClick吗?

编辑-让我稍微改变一下…我如何分配一个id到Html.CheckBoxFor()?

jQuery Selector For "Html.CheckBoxFor"

您可以根据复选框是否被选中来为.change()事件和.toggle()订阅div的可见性:

$(function() {
    $('#mycheckbox').change(function() {
        var isChecked = $(this).is(':checked');
        $('#someDivId').toggle(isChecked);
    });
});

你可以在这里看到它的作用

要标识这个复选框,你可以给它分配一个唯一的id:

<%: Html.CheckBoxFor(m => m.Type, new { id = "mycheckbox" }) %>

或一个类:

<%: Html.CheckBoxFor(m => m.Type, new { @class = "check" }) %>

是的,大多数html元素都有onclick/onchange事件。

假设您的复选框有一个id="checkbox1",您可以做以下操作

var myCheckBox = document.getElementById("checkbox1");
myCheckBox.addEventListener('change', function(){do something}, false);

看这个问题:获取生成的客户端为一个表单字段,这是我的答案:

我使用这个帮助器:

public static partial class HtmlExtensions
{
    public static MvcHtmlString ClientIdFor<TModel, TProperty>(
        this HtmlHelper<TModel> htmlHelper, 
        Expression<Func<TModel, TProperty>> expression)
    {
        return MvcHtmlString.Create(
              htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(
                  ExpressionHelper.GetExpressionText(expression)));
    }
}
@Html.ClientIdFor(model=>model.client.email)

或脚本中的

$(function() {
    $('#@Html.ClientIdFor(m=>m.Type)').change(function() {
        // Do stuff
    });
});