У меня в форме есть две радиокнопки. Один связан с раскрывающимся списком, а другой связан с текстовым полем. Если пользователь выбирает вторую радиокнопку (текстовое поле), я хотел бы отключить необходимое сообщение для раскрывающегося списка, потому что, когда пользователь нажимает кнопку «Отправить», в раскрывающемся списке отображается сообщение «Пожалуйста, выберите пункт в списке. "
Кстати, у меня это работает правильно, если я просто отключил раскрывающийся список, когда выбрана вторая радиокнопка, но мне было интересно, есть ли другой способ (может быть, лучше), потому что когда вы отключаете раскрывающийся список, он меняет его серый.
Скриншоты:
Модель:
public class EnrollmentModel : Controller
{
...
public bool PriceOption { get; set; }
[RequiredIf("PriceOption == true")]
public string SelectedRatePlan { get; set; }
public IEnumerable<SelectListItem> RatePlans { get; set; }
[RequiredIf("PriceOption == false")]
public string CustomRate { get; set; }
...
}
Вид:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<fieldset>
<div class="form-group">
<div class="row">
@Html.Label("Price Option:")
</div>
</div>
<div class="form-group">
<div class="row">
@Html.RadioButtonFor(x => Model.PriceOption, true, htmlAttributes: new { @id = "comed", @class = "col-md-1" })
@Html.Label("Use price from current rate plan")
@Html.DropDownListFor(x => Model.SelectedRatePlan, new SelectList(Model.RatePlans, "Value", "Text"), htmlAttributes: new { @class = "form-control", id = "rateplans", style = "width:100px;", required = "Select Rate Plan" })
@Html.ValidationMessageFor(x => Model.SelectedRatePlan, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="row">
@Html.RadioButtonFor(x => Model.PriceOption, false, htmlAttributes: new { @id = "custom", @class = "col-md-1" })
@Html.Label("Enter custom price")
@Html.TextBoxFor(x => Model.CustomRate, htmlAttributes: new { @id = "customrate", @class = "form-control", style = "width:100px;" })
@Html.ValidationMessageFor(x => Model.CustomRate, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-8">
<input type="button" value="Cancel" class="btn btn-link" onclick="location.href = '@Url.Action("Index", "Home")';" />
<button type="submit" value="Save" class="btn btn-primary">Submit</button>
</div>
</div>
</div>
</fieldset>
}