【发布时间】:2013-06-09 00:23:27
【问题描述】:
我试图让用户选择使用 HTML5 日期输入来通过移动网络调用本机日期选择器。由于无论用户设备是否支持 HTML5,我都不想重复调用相同的方法,因此我计划只向可以使用它的人显示 type="date" 输入。我想从提交的日期输入中获取值并将其传递给三个定义的值。基本上,当用户点击提交时,它会将日期分解为月、日和年,并将它们添加到表单处理器期望接收的字段中。
根据我找到的样本,我有类似的东西,但它不起作用:
$(document).ready(function() {
$('#submit').click(function(){
var dateVal = $('#dateCL').val()
var dateLength = dateVal.length;
var dateSplit = dateVal.split('\/');
var dateMonthLength = dateSplit['\/'].length + 0;
var monthCL = dateVal.slice(monthCLLength);
var dayCL = dateVal.slice(dayCLLength);
var yearCL = dateVal.slice(yearCLLength);
$('#dateCL').val(dateSplit[0]);
$('#month').val(monthCL);
$('#day').val(yearCL);
$('#year').val(monthCL);
return false;
});
});
<form action="mailto:me@me.com">
<input name="name" id="name" type="text">
<input name="first_name" id="first_name" type="text"/>
<input name="last_name" id="last_name" type="text"/>
<input type="submit" id="submit">
</form>
<form action="mailto:me@me.com">
<input name="dateCL" id="dateCL" type="date" min="1909" max="2009">
<input name="monthCL" id="monthCL" type="hidden"/>
<input name="dayCL" id="dayCL" type="hidden"/>
<input name="yearCL" id="yearCL" type="hidden"/>
<input type="submit" id="submit">
</form>
【问题讨论】:
-
你能在服务器端处理日期吗?
-
试图避免这种情况。我的 Java 家伙已经在进行深入的更改,这是为了前端的可访问性。
-
更新时弄丢了我的小提琴:jsfiddle.net/7xK53/5'
-
不要将代码附加到
$('#submit').click(),而是附加到$('form').submit()(并删除return false) -
那行不通。实际上,它甚至不必进入输入字段。我需要做的就是绑定到我已经为出生日期定义的变量。因此,如果它可以通过将日期分解为月、日和年来填充这些变量的值,那就提交吧。