Julian Buss
Julian Buss

Reputation: 1114

Domino 9 / Dojo 1.8 - Date Time Picker without default value

I want a Date Time Picker control WITHOUT a default value. Doesn't seem to be possible anymore :-(

To reproduce, create a blank XPage and place a Date Time Picker control. Open the XPage in the browser and you will see that it defaults to today.

I didn't found any way to set the default to an empty value. I tried setting all properties/data/default to 0, null, empty string and so on - no luck.

I tried the data-dojo-probs attribute with value:'', this sets the default to 1970-1-1, but not to blank.

Any ideas?

Upvotes: 2

Views: 2511

Answers (3)

Paul Stephen Withers
Paul Stephen Withers

Reputation: 15739

In applications I've previously applied a dojoType on the dateTimeHelper with this code:

<xp:dateTimeHelper id="dateTimeHelper1" dojoType="dijit.form.DateTextBox">
</xp:dateTimeHelper>

That was to address a problem in previous Domino versions where the page refreshed as soon as the picker was selected in certain flavours of IE.

This code seems to work fine on R9 without needing the workaround.

Upvotes: 1

Simon O&#39;Doherty
Simon O&#39;Doherty

Reputation: 9359

This is a known issue in ND9, reported as SPR DEGN966F5V.

A work around for the issue (from SPR) is to modify the widget prototype in the postCreate function to prevent the value from being reset.

require([ 
        "dojo/_base/lang", 
        "ibm/xsp/widget/layout/DateTextBox", 
        "ibm/xsp/widget/layout/TimeTextBox", 
        "ibm/xsp/widget/layout/DateTimeTextBox" 
], function(lang, DateTextBox, TimeTextBox, DateTimeTextBox){ 
        var a = {}; 
        lang.mixin(a, { 
                postCreate: function(){ 
                        this.inherited(arguments); 
                } 
        }); 
        DateTextBox.extend(a); 
        TimeTextBox.extend(a); 
        DateTimeTextBox.extend(a); 
}); 

Here is an example of it working.

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 
        <xp:this.resources> 
                <xp:script clientSide="true"> 
                        <xp:this.contents><![CDATA[ 
require([ 
        "dojo/_base/lang", 
        "ibm/xsp/widget/layout/DateTextBox" 
], function(lang, DateTextBox){ 
        var a = {}; 
        lang.mixin(a, { 
                startup: function(){ 
                        this.inherited(arguments); 
                        this.set("value", null); 
                } 
        }); 
        DateTextBox.extend(a); 
}); 
]]></xp:this.contents> 
                </xp:script> 
        </xp:this.resources> 

        <xp:inputText id="inputText1" value="#{sessionScope.inputText1}"> 
                <xp:this.converter> 
                        <xp:convertDateTime type="date" /> 
                </xp:this.converter> 
                <xp:dateTimeHelper /> 
        </xp:inputText> 
</xp:view> 

Upvotes: 5

Michael Saiz
Michael Saiz

Reputation: 1640

i dont know how it works in notes 9 but you could remove it with a CSJS like:

var field= dojo.byId('#{id:field}')
field.value ="";

hope it helps..

Upvotes: 2

Related Questions