对同一型号使用ASP-FOR两次



我有一项任务,如果在国家下拉列表中选择了"美国",我必须为美国各州实施下拉列表。

为此,我实现了两个控件,非美国州的文本框和美国州的下拉框

<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; }

如何参考并正确验证文本框和下拉的状态说明

非常感谢你的帮助!

问题只是输入和选择的值都在发布,其中一个值总是覆盖发布数据中的另一个值。您需要添加一些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);
}
});

最新更新