Php jQuery+;表格+;文本输入>;是否可以在textinput中显示一个值并提交另一个值?
我正在开发一个应用程序,其中日期以yyyy-mm-dd的形式传递,但以mm-dd-yyyy(基于美国的客户端)的形式显示给客户端 我使用jQuery datepicker在报表中选择从/到日期,并希望将日期显示为mm-dd-yyyy,但在提交表单时,提交为yyyy-mm-dd 是否可以在textinput文本框中显示一个值并提交另一个值,而无需连接到onSubmit 我提出了以下备选方案:Php jQuery+;表格+;文本输入>;是否可以在textinput中显示一个值并提交另一个值?,php,javascript,jquery,html,Php,Javascript,Jquery,Html,我正在开发一个应用程序,其中日期以yyyy-mm-dd的形式传递,但以mm-dd-yyyy(基于美国的客户端)的形式显示给客户端 我使用jQuery datepicker在报表中选择从/到日期,并希望将日期显示为mm-dd-yyyy,但在提交表单时,提交为yyyy-mm-dd 是否可以在textinput文本框中显示一个值并提交另一个值,而无需连接到onSubmit 我提出了以下备选方案: 隐藏from和to字段的文本输入,创建虚拟字段并使用以下jQuery日期选择器函数:altField和al
我这样做的方式是在PHP代码中显示之前和提交之后进行翻译。我从MySQL数据库中获取的日期是'YYYY-MM-DD'格式的,但使用jQuery UI datepicker以'MM/DD/YYYY'格式显示在表单中。编辑:如果您想使用一个附加字段,那么使用相同的恩 使用dateFormat格式化要显示的日期,请使用$.datepicker.formatDate()按所需方式发送。更具体地说,在“提交”表单上,使用它重新格式化任何日期选择器
$('form').submit(function() {
$(this).find('input.yourDatePickerClass').each( function() {
$dp = $(this);
$dp.val( $.datepicker.formatDate( 'yy-mm-dd', $dp.datepicker('getDate')) );
});
});
旧答案:
查看中的altFormat选项。它允许您显示与您正在使用的日期格式不同的日期格式
e、 g
$( ".selector" ).datepicker({ altFormat: 'mm-dd-yy' });
在将日期传递给DB之前,您应该始终清理并格式化日期。这不应该在客户端处理。一个简单的
日期(“Y-m-d”,strotime($date))
应该足够了。为什么要避免在onsubmit中执行此操作?我不想在一个区域中处理提交日期的格式设置,而在另一个区域中处理检索日期的格式设置。报表采用查询字符串参数(也在yyyy-mm-dd中)在jQuery datepicker中使用之前,需要对其进行过滤。在一个备用字段中,而不是在您正在使用的字段中。我对它的理解和测试使我相信我需要引入另一个字段,该字段将以备用格式保存日期。啊-我以为您需要虚拟字段的内容。我调整了我的答案accordingly.我倾向于远离JavaScript解决方案,因为最终用户可以很容易地绕过它们——不管是有意还是无意。在mm/dd/yy的情况下,用户总是可以绕过它。我的意思是,如果他们进入2010年6月5日,你如何检查这是mm/dd还是dd/mm?即使你最初处理字符串,他们也可以你知道吗?尽管从日期选择器以原始格式发送整个日期字符串,我认为最好在服务器上处理(如你所说,依赖服务器处理-我同意你的观点。这似乎不是一条有效的途径:OP问题)我喜欢这种方法,虽然它能有效地连接到onsubmit中,但我已经将其添加为书签,因为我确实认为它将来会派上用场,cheers。这是我倾向于的选择。它还有净化数据的副作用。该网站是私人登录,客户端不会试图恶意更改表单输入,所有数据库调用都是p参数化。即使如此,您也不应该信任您的用户。在处理数据时,清理和验证应该始终是一个重点。很高兴听到您在查询中使用参数:-)