如果在“国家/地区”下拉列表中选择了“美国”,则我必须执行一项任务,以便对美国各州实施该下拉列表。
为此,我实现了两个控件,非美国州的文本框和美国州的下拉框
<input class="form-control" type="text" asp-for="BIS232Request.JSONData.RequestingOrg.State" />
<select class="form-control" asp-for="BIS232Request.JSONData.RequestingOrg.State" id="HeadquartersState"></select>
<span asp-validation-for="BIS232Request.JSONData.RequestingOrg.State" class="alert-danger"></span>
但是,状态只有一个模型属性
[Required]
[DisplayName("State")]
public string State { get; set; }
如何参考和正确验证文本框和下拉列表的状态说明
非常感谢您的帮助!
答案 0 :(得分:0)
问题很简单,就是输入和选择的值都被发布,并且其中一个值将始终覆盖发布数据中的另一个。您需要添加一些JavaScript才能根据国家/地区禁用一个或另一个。如果输入或选择具有disabled
属性,它将不会发布其值,仅保留另一个的值。
$('[name$=Country]').on('change', function () {
if ($(this).val() === 'US') {
$('select[name$=State]').removeAttr('disabled');
$('input[name$=State]').attr('disabled', true);
} else {
$('input[name$=State]').removeAttr('disabled');
$('select[name$=State]').attr('disabled', true);
}
});