カレンダー・ボタンを使用して日付を選択できるようにし、Dojo Date Textbox での日付の入力を無効にするにはどうすればよいですか?
これを行う方法はありますか?もしそうなら、どのように?
基本的に、ユーザーがカレンダー ボタンを使用して日付を選択できるようにしたいのですが、手動で日付を入力することはできません。
カレンダー・ボタンを使用して日付を選択できるようにし、Dojo Date Textbox での日付の入力を無効にするにはどうすればよいですか?
これを行う方法はありますか?もしそうなら、どのように?
基本的に、ユーザーがカレンダー ボタンを使用して日付を選択できるようにしたいのですが、手動で日付を入力することはできません。
クライアント側の onfocus イベントを作成します。
thisEvent.target.blur();
これは、フィールドの値が日付ヘルパーを介してプログラムによって入力されることを妨げませんが、フィールドに手動でフォーカス (つまり、クリックまたはタブ移動) しようとすると、再び追い出されます。
日時フィールドで試したshowReadonlyAsDisabledの新しいプロパティがあります。しかし、結局は無効なフィールドが作成されましたが、驚くべきことに、編集ボックスの場合は読み取り専用フィールドが作成されます。そのため、ページの読み込み中にjavascriptを介してreadonlyプロパティを設定することにより、回避策を作成する必要がありました。以下はコードスニペットです。
<xp:inputText id="dateTimeField">
<xp:dateTimeHelper id="dateTimeHelper1"></xp:dateTimeHelper>
<xp:this.converter>
<xp:convertDateTime type="date"></xp:convertDateTime>
</xp:this.converter>
</xp:inputText>
<xp:br></xp:br>
<xp:scriptBlock>
<xp:this.value><![CDATA[XSP.addOnLoad(
function() {
document.getElementById("#{id:dateTimeField}").readOnly = true;
}
);]]></xp:this.value>
</xp:scriptBlock>
これが最適な解決策かどうかはわかりませんが、機能します。