转换用户';输入dd/mm/yyyy以输出dd/MMM/yyyy,而不提交表单或在javascript中重新加载页面

转换用户';输入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>` ` 我已经更改了日期选择器部分(当用户从日期选择器中选择日期时,它将

我对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>`

`
我已经更改了日期选择器部分(当用户从日期选择器中选择日期时,它将显示为“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>