转换用户';输入dd/mm/yyyy以输出dd/MMM/yyyy,而不提交表单或在javascript中重新加载页面
我对javascript非常陌生,我的任务是编辑一段代码,将dd/mm/yyyy从用户输入转换为dd/mm/yyyy转换用户';输入dd/mm/yyyy以输出dd/MMM/yyyy,而不提交表单或在javascript中重新加载页面,javascript,xhtml,Javascript,Xhtml,我对javascript非常陌生,我的任务是编辑一段代码,将dd/mm/yyyy从用户输入转换为dd/mm/yyyy <p:calendar id="testDate" styleClass="calendar" maxlength="10" pattern="dd/MMM/yyyy" onfocus="$(this).mask('99/99/9999');"> </p:calendar>` ` 我已经更改了日期选择器部分(当用户从日期选择器中选择日期时,它将
<p:calendar
id="testDate"
styleClass="calendar"
maxlength="10"
pattern="dd/MMM/yyyy"
onfocus="$(this).mask('99/99/9999');">
</p:calendar>`
`
我已经更改了日期选择器部分(当用户从日期选择器中选择日期时,它将显示为“2013年1月12日”,而不是“2013年1月12日”),现在我需要修复手动输入部分
因此,当用户输入“2012年12月12日”并点击该字段时,该日期将自动转换为“2012年12月12日”,而无需重新加载页面或提交表单
我知道有一个叫做“onblur”的方法,但它只返回当天的日期,而不是我输入的日期。此外,它将被激活,甚至当我点击一个日期从我的日期选择器
我唯一可以处理的页面是xhtml页面、托管bean和javascript。您需要通过javascript更改日期格式。无需转到服务器 您知道如何调用javascript函数吗?如果是,请参考本文件 使用@maerics中的以下代码尝试回答
function convertDate(inputFormat) {
function pad(s) { return (s < 10) ? '0' + s : s; }
var d = new Date(inputFormat);
return [pad(d.getDate()), pad(d.getMonth()+1), d.getFullYear()].join('/');
}
函数转换日期(inputFormat){
功能板{返回(s<10)'0'+s:s;}
var d=新日期(输入格式);
return[pad(d.getDate()),pad(d.getMonth()+1),d.getFullYear()].join('/');
}
===============================编辑========================================
试试这个
函数比较(id)
{
var weekday=新数组(7);
工作日[0]=“周日”;
工作日[1]=“周一”;
工作日[2]=“星期二”;
工作日[3]=“星期三”;
工作日[4]=“周四”;
工作日[5]=“周五”;
工作日[6]=“周六”;
var月数=新阵列(12);
月[0]=“一月”;
月[1]=“2月”;
月[2]=“三月”;
月[3]=“4月”;
月[4]=“五月”;
月[5]=“六月”;
月[6]=“7月”;
月[0]=“8月”;
月[1]=“九月”;
月[2]=“10月”;
月[3]=“11月”;
月[4]=“12月”;
var d=新日期(id);
var retVal=weekday[d.getDay()]+''+d.getDate()+'+months[d.getDate()]+','+d.getFullYear()
返回retVal;}
你好,世界第一
*注意:javascript和java是两种完全不同的语言。感谢您指出这一点!!!我在编码方面非常弱,但我的实习要求我具备编码知识,所以我在工作中学习:'(Hi Hirak!请不要嘲笑我,但嗯,是这样吗?..函数转换日期(inputFormat){函数板{返回(s<10)'0'+s:s;}var d=新日期(inputFormat);return[pad(d.getDate())、pad(d.getMonth()+1)、d.getFullYear()].join(“/”);}IMHO该部分将位于html的头部部分(P:calendar之外)。我无法测试它,但希望它能正常工作。错误消息说“Error 500:javax.servlet.ServletException:Error Parsing/viewmata/test.xhtml:Error tracked[line:30]元素的内容必须由格式良好的字符数据或标记组成。”:“(你的P:calendar是什么?这是什么taglib?我如何识别它是什么taglib…?请耐心听我说,因为我对编码非常陌生。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
<script type="text/javascript">
function CompareDates( id)
{
var weekday = new Array(7);
weekday[0]= "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
weekday[3] = "Wednesday";
weekday[4] = "Thursday";
weekday[5] = "Friday";
weekday[6] = "Saturday";
var months = new Array(12);
months[0]= "JAN";
months[1] = "FEB";
months[2] = "MAR";
months[3] = "APR";
months[4] = "MAY";
months[5] = "JUN";
months[6] = "JUL";
months[0]= "AUG";
months[1] = "SEP";
months[2] = "OCT";
months[3] = "NOV";
months[4] = "DEC";
var d = new Date(id);
var retVal =weekday[d.getDay()]+' '+ d.getDate()+' '+ months[d.getDate()]+','+d.getFullYear()
return retVal; }
</script>
</h:head>
<h:body>
<h1>Hello World PrimeFaces</h1>
<h:form>
<p:calendar id="testDate" styleClass="calendar" maxlength="10"
pattern="EEE, dd MMM, yyyy" onfocus="$(this).mask('99/99/9999');"
onchange="$(this).val(CompareDates($(this).val()))"
>
</p:calendar>
<Br/>
<p:calendar id="testDate1" styleClass="calendar" maxlength="10"
pattern="EEE, dd MMM, yyyy" onfocus="$(this).mask('99/99/9999');"
>
</p:calendar>
</h:form>
</h:body>
</html>