5

我目前正在为酒店预订小部件编写一些编码,并且正在使用 jQuery UI 日期选择器。

问题是客户正在使用的外部预订系统处理日期格式,yyyy-mm-dd并且客户认为这会混淆人们2012-06-19在输入框中看到的内容,并希望dd-mm-yyyy在他们的网站上以欧洲格式显示日期。

所以基本上表单需要显示dd-mm-yyyy何时选择日期,然后当提交按钮单击表单时,日期需要yyyy-mm-dd在发送值之前重新排列。

这家预订系统公司表示,他们有很多客户已经做到了这一点,但他们表示他们不是 100% 确定这是如何做到的。

4

2 回答 2

11

DatePicker 可以使用选项altFieldaltFormat.

altField:要使用日期选择器中选定的日期更新的输入元素。使用该altFormat选项更改此字段中日期的格式。如果没有备用字段,请留空。

$('#thedate').datepicker({
  dateFormat: 'dd-mm-yy',
  altField: '#thealtdate',
  altFormat: 'yy-mm-dd'
});
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
Shown Field: <input id="thedate" type="text" /><br />
Hidden Field : <input id="thealtdate" type="text" />

于 2012-06-19T17:09:36.373 回答
3

有很多方法可以解决这个问题,但这可能是我乍一看的处理方式。

  1. 添加一个隐藏字段来存储新的日期值。
  2. 为提交按钮的提交功能创建一个事件处理程序。

  3. 在该函数中创建格式正确的新日期:

    var d = new Date($("oldDateFormatPicker").val()); $("hiddenField").val(d); 返回真;

类似的东西至少语法可能有点偏离,但它很接近。在我们的服务器端代码中,只需指向隐藏字段而不是日期选择器。

于 2012-06-19T16:19:32.973 回答