我有一个 .Net Maui Blazor 混合和 Web 应用程序。 我面临的挑战是,当我在 Windows 和浏览器中运行该解决方案时,我可以在 InputDate 字段中键入日期,但在 Android 上它不允许我键入日期,它迫使我选择来自日期选择器的日期。
我希望能够输入日期的原因是,如果用户出生于 1969 年,则需要大量滚动才能找到正确的年份。
<div class="row">
<div class="col-2">
<label class="col-form-label">Date of Birth</label>
</div>
<div class=" col-4">
<InputDate @bind-Value="customer.DateOfBith"></InputDate>
</div>
</div>
您可以使用标准并应用自定义验证来代替 ,以确保日期格式正确。
<div class="row">
<div class="col-2">
<label class="col-form-label">Date of Birth</label>
</div>
<div class="col-4">
<InputText @bind-Value="customer.DateOfBirthString" @oninput="ValidateDate"></InputText>
<div class="text-danger">@dateErrorMessage</div>
</div>
@代码{ 私有字符串?日期错误消息;
public string? customer.DateOfBirthString { get; set; }
private void ValidateDate(ChangeEventArgs e)
{
var inputValue = e.Value?.ToString();
if (DateTime.TryParse(inputValue, out var parsedDate))
{
customer.DateOfBith = parsedDate;
dateErrorMessage = null;
}
else
{
dateErrorMessage = "Invalid date format. Please enter a valid date.";
}
}
}