У меня есть требование, где есть текстовое поле, которое всплывает в календаре, и есть флажок. При снятии флажка при щелчке на текстовом поле он должен отображать григорианский календарь, а при снятии флажка в текстовом поле должен отображаться исламский календарь.
Он отображает исламский календарь, как и ожидалось, но когда текстовое поле переключено на григорианский календарь, месяц и год отображаются должным образом, но часть текста по-прежнему отображается на арабском языке, а выравнивание равно RTL, как арабский.
Я использовал некоторый источник здесь: http://keith -wood.name / calendarspicker.html #
Ниже мой код:
HTML-код:
<p:inputText value="#{gen.dateAcc}" id="dateAcc"
onchange="changeEVENT();" styleClass="calenderType"
disabled="#{gen.disableGen}" readonly="false">
<f:convertDateTime pattern="dd/mm/yyyy"/>
</p:inputText>
<p:selectBooleanCheckbox style="valign:bottom;" value="false" id="toggle1"
disabled="#{gen.disableGen}"
onchange="toggleCalender(this,'dateAcc','hijri')" widgetVar="hijri" />
JS:
function setGregorianCal(){
var classtype = '.calenderType';
$(classtype).calendarsPicker($.extend({
localNumbers: true,
dateFormat:'dd/mm/yyyy'
}
));
}
function toggleCalender(obj,target,widgetVar){
var objId = obj.id;
var checkVal= PrimeFaces.widgets[widgetVar].input.is(':checked');
var lastIndex = objId.lastIndexOf(":");
var initialId = objId.slice(0, lastIndex);
var targetId= '#'+initialId+':'+target;
var finalID = targetId.replace(/:/g, '\\:');
if(checkVal){
$(finalID).calendarsPicker('destroy');
$(finalID).calendarsPicker($.extend({
calendar: $.calendars.instance('UmmAlQura'),
localNumbers: true,
dateFormat:'dd/mm/yyyy'
},
$.calendarsPicker.regionalOptions['ar']
));
}else{
$(finalID).calendarsPicker('destroy');
$(finalID).calendarsPicker($.extend({
calendar: $.calendars.instance(),
localNumbers: true,
dateFormat:'dd/mm/yyyy'
}
));
}
}
Ниже приведен скриншот:
Григорианский календарь:
Исламский календарь: