2013-11-28 4 views
0

У меня есть XPage с 2 текстовыми полями времени Dojo. Перед отправкой я хочу проверить, что время начала раньше времени окончания. При использовании оператора «>» работает в случаях, он не работает, если дата начала имеет две цифры в часовом значении, а конечная дата имеет только одну цифру (время отображается с использованием AM и PM). Вот мой код:XPages - сравнение значений из двух текстовых полей времени Dojo

<xe:djTimeTextBox id="EventStartTime" value="#{document1.EventStartTime}" /> 
<xe:djTimeTextBox id="EventEndTime" value="#{document1.EventEndTime}" /> 

var startD = "#{id:EventStartTime}"; 
var endD = "#{id:EventEndTime}"; 
var startVal = dojo.attr(startD,"value"); 
var endVal = dojo.attr(endD,"value"); 
if (startVal > endVal) {alert("Start later than End!");return false;}; 

Например, это сравнение не будет работать, если время пуска 10:15 АМ и время окончания 9:30 PM.

ответ

1

Мне часто приходится использовать поля даты и времени для пользователей, чтобы выбирать собрания, события или другие вещи с помощью параметра «Длительности», где время начала не может быть позже, чем время окончания. Для тех, кто я использую этот код:

<xp:this.resources> 
    <xp:dojoModule name="dijit.form.TimeTextBox"></xp:dojoModule> 
</xp:this.resources> 

Start Time: 
<xp:inputText id="mtgTime1" style="width:160px;" role="button" 
    title="used to pick a meeting time" required="true" 
    dojoType="dijit.form.TimeTextBox"> 
    <xp:this.dojoAttributes> 
     <xp:dojoAttribute name="onChange"> 
      <xp:this.value><![CDATA[#{javascript:return "dijit.byId('"+getClientId('mtgTime2')+ "').constraints.min = arguments[0];"}]]></xp:this.value> 
     </xp:dojoAttribute> 
    </xp:this.dojoAttributes> 
</xp:inputText> 
<br></br> 
End Time: 
<xp:inputText id="mtgTime2" style="width:160px;" role="button" 
    dojoType="dijit.form.TimeTextBox"> 
    <xp:this.dojoAttributes> 
     <xp:dojoAttribute name="onChange"> 
      <xp:this.value><![CDATA[#{javascript:return "dijit.byId('"+getClientId('mtgTime1')+"').constraints.max = arguments[0];"}]]></xp:this.value> 
     </xp:dojoAttribute> 
    </xp:this.dojoAttributes> 
</xp:inputText> 

Это создаст два додзё TimeBoxes mtgTime1 и mtgTime2 оба будут иметь Выпадающий список которым позволяет пользователю выбрать значений времени, но если выбран первый один secound не позволено быть установите более высокое значение, используя dojo function contraints.min и contraints.max.

Для получения дополнительной информации см. dijit.form.TimeTextBox.

Этот вид проверки работает и для DateTimeBox.

Обновление: Не забудьте установить dojoForm="true" dojoTheme="true" dojoParseOnLoad="true".

+0

Спасибо, я испытаю это, как только смогу –

Смежные вопросы