我使用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,
}
如果我们点击Not Applicable单选按钮,那么IDMS Reference Number输入字段应该是禁用的,输入IdmsRefNo字段应仅对适用的单选按钮启用,那么如何在JQuery或任何其他解决方案中执行? 请任何人帮忙
答案 0 :(得分:0)
如果我理解你的问题,你想根据所选的无线电选项禁用一个字段。您可以绑定单选按钮的更改事件,并相应地禁用/启用文本框。 [.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的值。