jQuery + form + textinput>是否可以在textinput中显示一个值并提交另一个值?

时间:2010-05-26 17:26:47

标签: php javascript jquery html

我正在开发一个应用程序,其中日期作为yyyy-mm-dd传递,但以mm-dd-yyyy(美国客户端)显示给客户端。

我正在使用jQuery日期选择器来选择报告中的日期和日期,并希望将日期显示给客户端为mm-dd-yyyy,但是在提交表单时,请提交为yyyy-mm-dd。

是否可以在textinput文本框中显示一个值,并在不需要挂钩到onSubmit的情况下提交另一个值?

我想出了以下替代方案:

  1. 隐藏from和to字段的文本输入,创建虚拟字段并使用以下jQuery日期选择器函数:altField和altFormat以首选方式向客户端显示值,并仅处理提交的值通过alt函数设置。

  2. 进行onSubmit javascript调用,将日期从mm-dd-yyyy更改为dd-mm-yyyy,并更改value =“将日期更改为客户端的首选格式。

  3. 重写应用程序以处理mm-dd-yyyy中的所有日期,并希望客户永远不会有希望以特定格式提供日期的非美国客户。

  4. 将所有日期更改为dd-Mon-YYYY,例如2010年5月26日,我们所有客户的客户都保证只有英文版。

3 个答案:

答案 0 :(得分:3)

编辑:认为你想要使用一个额外的字段,如何使用相同的字段?

http://jsfiddle.net/bEd8c/

使用dateFormat格式化您希望可见的日期,使用$ .datepicker.formatDate()以您希望的方式发送它。更具体地说,在表单提交上使用它来重新格式化任何日期选择器。

$('form').submit(function() {
   $(this).find('input.yourDatePickerClass').each( function() {
      $dp = $(this);
      $dp.val( $.datepicker.formatDate( 'yy-mm-dd', $dp.datepicker('getDate')) );
   });
});

旧答案:

查看datepicker中的altFormat选项。它允许您显示与您正在使用的日期格式不同的日期格式。

e.g。

$( ".selector" ).datepicker({ altFormat: 'mm-dd-yy' });

答案 1 :(得分:1)

在将日期传递给数据库之前,您应始终清理并格式化日期。这不是应该在客户端处理的东西。一个简单的date("Y-m-d", strtotime($date))就足够了。

答案 2 :(得分:0)

我这样做的方法是在显示之前和在我的PHP代码中提交之后进行翻译。我从MySQL数据库获取日期为'YYYY-MM-DD'格式的日期,但是在表格中用'MM / DD / YYYY'格式的jQuery UI日期选择器显示它们。