Javascript 输入日期占位符/格式日期在EN-US客户端上不正确

Javascript 输入日期占位符/格式日期在EN-US客户端上不正确,javascript,html,asp.net,asp.net-core,Javascript,Html,Asp.net,Asp.net Core,目前,我有一个ASP.NET核心网站,我需要在表单上有日期字段,并使用此字段: <input asp-for="StartDate" class="w-50" type="date" max="2020-10-23" min="1950-01-01" placeholder="dd/mm/yyyy" /> 由于某些原因,在en-US客户端上,所有内容都被覆盖到MM

目前,我有一个ASP.NET核心网站,我需要在表单上有日期字段,并使用此字段:

<input asp-for="StartDate" class="w-50" type="date" max="2020-10-23" min="1950-01-01" placeholder="dd/mm/yyyy" />
由于某些原因,在en-US客户端上,所有内容都被覆盖到MM/dd/yyyy。

因此,第一个问题是:我可以强制日期字段始终使用正确的格式dd/MM/yyyy吗 在搜索之后,我认为这是不可能的,我们不能调整客户端行为,因为这将违反HTML规则

然后我又想到了另一个问题。如果无法完成:如何将正确的日期发送到后端?老实说,我不在乎用户输入日期的格式。但是当以Ajax调用发送表单时,我需要确保日期是dd/MM/yyyy格式。现在我使用:

 jQuery.ajax({
        url: `/xxxxxxxx}`,
        type: "POST",
        data: $("#form").serialize(),
        success: function (partialView) {
            refreshForm(partialView);
        }
    });
.serialize()只发送例如31/02/2020或02/31/2020,具体取决于浏览器的语言。我无法更改后端的API,因为它不是我的

你会怎么做来解决这个问题?尝试强制输入dd/MM/yyyy,尝试在发送(以及如何发送)或其他解决方案之前用Javascript解析日期

我很高兴听到你的解决方案

问候,,
Miscode

对于类型设置为“日期”的输入,唯一有效的格式是ISO-8601,即YYYY-MM-DD。任何其他格式都需要文本输入。需要您尝试使用的格式有什么特别的原因吗?嗨@TiesonT。我不知道你的问题是什么意思?要求使用我想要使用的格式的原因是没有人使用yyyy-MM-dd。我们使用dd-MM-yyyy,而在美国他们使用MM-dd-yyyy。只是想确定一下。我的问题是关于用户必须输入的日期,而不是最小/最大值。这些数据确实需要采用yyyy-mm-dd格式,但这没关系。“没有人使用yyyy-mm-dd”-嗯,我使用,我在美国。当设置为
时,HTML元素本身使用ISO-8601,尽管显示给用户的内容因浏览器和区域设置而异。我有点惊讶,如果你说serialize()根据用户的区域设置给你一个不同的值-那应该给你一个Date()值。这就是我看到的:-它总是ISO-8601日期。当然,这不是ASP.NET核心,但是标记帮助程序只生成标准输入元素,modelbinder没有做任何您认为需要检查的特殊操作。
 jQuery.ajax({
        url: `/xxxxxxxx}`,
        type: "POST",
        data: $("#form").serialize(),
        success: function (partialView) {
            refreshForm(partialView);
        }
    });