【问题标题】:How To Hide Input Fields Based On Enum Radio Button Selection .NET MVC如何基于枚举单选按钮选择隐藏输入字段 .NET MVC
【发布时间】:2014-11-08 04:59:05
【问题描述】:

我使用 MVC Razor 技术在 C# 中开发了一个页面,我的代码如下

<div class="col-md-4">
                <label for="" class="control-label">
                    IDMS Reference <font color="red">*</font></label><br />
                 <div class="radio col-md-4">
                     @Html.EnumRadioButtonFor(m => m.enumIDMSReference, false).DisableIf(() => 
                                                                          Model.IdmsRef == 2)

                </div>

 <div  class="col-md-4">
                <label for="" class="control-label">
                    IDMS Reference Number <font color="red">*</font></label><br />
                @Html.TextBoxFor(m => m.IdmsRefNo, new { @class = "form-control"  
                                            }).DisableIf(() => Model.InwardBranch == true)
</div>

我的 Enum 课程正在跟进,

public enum enumIDMSReference
{
    [Description("Applicable")]
    Applicable = 1,

    [Description("Not Applicable")]
    NotApplicable = 2,

}

如果我们点击不适用单选按钮,那么 IDMS 参考号输入字段应该被禁用,输入 IdmsRefNo 字段应该只为适用的单选按钮启用,那么如何在 JQuery 或任何其他解决方案中做到这一点? 请大家帮忙

【问题讨论】:

标签: c# jquery razor model-view-controller enums


【解决方案1】:

如果我理解您的问题正确,您想禁用基于所选单选选项的字段。您可以绑定单选按钮的更改事件并相应地禁用/启用您的文本框。 [.NET FIDDLE]

$('input[name="enumIDMSReference"]').change(function() {
    if ($(this).is(':checked') && $(this).val() == 'NotApplicable') {
        $('#IdmsRefNo').attr('disabled', 'disabled');
    } else {
        $('#IdmsRefNo').removeAttr('disabled');
    }
});

你可以像这样遍历你的枚举值(我不是在检查空值,你可以自己做):

@foreach (var value in Enum.GetValues(Model.enumIDMSReference.GetType()))
{
    var memInfo = Model.enumIDMSReference.GetType().GetMember(value.ToString());
    var attributes = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
    var description = ((DescriptionAttribute)attributes[0]).Description;

     @Html.RadioButtonFor(m => m.enumIDMSReference, value);
     @Html.Label(description);
     @Html.Raw("<br />");
}

您可以通过默认服务器端禁用/启用文本框来进一步扩展此功能,具体取决于 enumIDMSReference 的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2013-07-11
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多