My97DatePicker日期外掛WdatePicker.js的使用方法

yinghualeihenmei發表於2024-03-18

原文連結:https://blog.csdn.net/honghailiang888/article/details/51384929

一、先來最簡單的配置方法:

(1)下載WdatePicker.js(包括lang和skin資料夾)。

(2)在html頁面中匯入WdatePicker.js。 //同時引入了WdatePicker.css檔案

(3)在輸入框input元素上加入class="Wdate" onFocus="WdatePicker({lang:'zh-cn'})"程式碼。

(4)開啟頁面檢視效果。

二、常用的使用方法

1. 跨無限級框架顯示


無論你把日期控制元件放在哪裡,你都不需要擔心會被外層的iframe所遮擋進而影響客戶體驗,因為My97日期控制元件是可以跨無限級框架顯示的


示例2-7 跨無限級框架演示

可無限跨越框架iframe,無論怎麼巢狀框架都不必擔心了,即使有捲軸也不怕


2. 民國年日曆和其他特殊日曆


當年份格式設定為yyy格式時,利用年份差量屬性yearOffset(預設值1911民國元年),可實現民國年日曆和其他特殊日曆

示例2-8 民國年演示


<input type="text" id="d28" onClick="WdatePicker({dateFmt:'yyy/MM/dd'})"/>

注意:年份格式設定成yyy時,真正的日期將會減去一個差量yearOffset(預設值為:1911),如果是民國年使用預設值即可無需另外配置,如果是其他的差量,可以透過引數的形式配置


3. 為程式設計帶來方便

如果el的值是this,可省略,即所有的el:this都可以不寫
日期框設定為disabled時,禁止更改日期(不彈出選擇框)
如果沒有定義onpicked事件,自動觸發文字框的onchange事件
如果沒有定義oncleared事件,清空時,自動觸發onchange事件


4. 其他屬性

設定readOnly屬性,可指定日期框是否只讀
設定highLineWeekDay屬性,可指定是否高亮週末
設定isShowOthers屬性,可指定是否顯示其他月的日期
加上class="Wdate"就會在選擇框右邊出現日期圖示

多語言和自定義皮膚

1. 多語言支援

透過lang屬性,可以為每個日期控制元件單獨配置語言,當然也可以透過WdatePicker.js配置全域性的語言
語言列表和語言安裝說明詳見語言配置

示例3-1 多語言示例

繁體中文:
<input id="d311" class="Wdate" type="text" onFocus="WdatePicker({lang:'zh-tw'})"/>

英文:
<input id="d312" class="Wdate" type="text" onFocus="WdatePicker({lang:'en'})"/>

簡體中文:
<input id="d313" class="Wdate" type="text" onFocus="WdatePicker({lang:'zh-cn'})"/>

注意:預設情況lang='auto',即根據瀏覽器的語言自動選擇語言.


2. 自定義和動態切換皮膚

透過skin屬性,可以為每個日期控制元件單獨配置皮膚,當然也可以透過WdatePicker.js配置全域性的皮膚
皮膚列表和皮膚安裝說明詳見皮膚配置


示例3-2 皮膚演示

預設皮膚default: skin:'default'

<input id="d321" class="Wdate" type="text" οnfοcus="WdatePicker()"/>

注意:在WdatePicker裡配置了skin='default',所以此處可省略,同理,如果你把WdatePicker裡的skin配置成'whyGreen'那麼在不指定皮膚的情況下都使用'whyGreen'皮膚了

whyGreen皮膚: skin:'whyGreen'


<input id="d322" class="Wdate" type="text" οnfοcus="WdatePicker({skin:'whyGreen'})"/>


4. 日期範圍限制

1. 靜態限制
注意:日期格式必須與 realDateFmt 和 realTimeFmt 一致

你可以給透過配置minDate(最小日期),maxDate(最大日期)為靜態日期值,來限定日期的範圍

示例4-1-1 限制日期的範圍是 2006-09-10到2008-12-20
<input id="d411" class="Wdate" type="text" οnfοcus="WdatePicker({skin:'whyGreen',minDate:'2006-09-10',maxDate:'2008-12-20'})"/>


示例4-1-2 限制日期的範圍是 2008-3-8 11:30:00 到 2008-3-10 20:59:30
<input type="text" class="Wdate" id="d412" οnfοcus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'2008-03-08 11:30:00',maxDate:'2008-03-10 20:59:30'})" value="2008-03-09 11:00:00"/>


示例4-1-3 限制日期的範圍是 2008年2月 到 2008年10月
<input type="text" class="Wdate" id="d413" οnfοcus="WdatePicker({dateFmt:'yyyy年M月',minDate:'2008-2',maxDate:'2008-10'})"/>


示例4-1-4 限制日期的範圍是 8:00:00 到 11:30:00
<input type="text" class="Wdate" id="d414" οnfοcus="WdatePicker({dateFmt:'H:mm:ss',minDate:'8:00:00',maxDate:'11:30:00'})"/>


2. 動態限制
注意:日期格式必須與 realDateFmt 和 realTimeFmt 一致

你可以透過系統給出的動態變數,如%y(當前年),%M(當前月)等來限度日期範圍,你

還可以透過#{}進行表示式運算,如:#{%d+1}:表示明天

動態變數表

格式

說明

%y

當前年

%M

當前月

%d

當前日

%ld

本月最後一天

%H

當前時

%m

當前分

%s

當前秒

{}

運算表示式,如:#{%d+1}:表示明天

#F{}

{}之間是函式可寫自定義JS程式碼


示例4-2-1 只能選擇今天以前的日期(包括今天)
<input id="d421" class="Wdate" type="text" οnfοcus="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d'})"/>


示例4-2-2 使用了運算表示式只能選擇今天以後的日期(不包括今天)
<input id="d422" class="Wdate" type="text" οnfοcus="WdatePicker({minDate:'%y-%M-{%d+1}'})"/>


示例4-2-3 只能選擇本月的日期1號至本月最後一天
<input id="d423" class="Wdate" type="text" οnfοcus="WdatePicker({minDate:'%y-%M-01',maxDate:'%y-%M-%ld'})"/>


示例4-2-4 只能選擇今天7:00:00至明天21:00:00的日期
<input id="d424" class="Wdate" type="text" οnfοcus="WdatePicker({dateFmt:'yyyy-M-d H:mm:ss',minDate:'%y-%M-%d 7:00:00',maxDate:'%y-%M-{%d+1} 21:00:00'})"/>


示例4-2-5 使用了運算表示式只能選擇 20小時前至 30小時後的日


<input id="d425" class="Wdate" type="text" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'%y-%M-%d {%H-20}:%m:%s',maxDate:'%y-%M-%d {%H+30}:%m:%s'})"/>


3 . 指令碼自定義限制
注意:日期格式必須與 realDateFmt 和 realTimeFmt 一致


系統提供了$dp.$D和$dp.$DV這兩個API來輔助你進行日期運算,此外你還可以透過在 #F{} 中填入你自定義的指令碼,做任何你想做的日期限制


示例4-3-1 前面的日期不能大於後面的日期且兩個日期都不能大於 2020-10-01

合同有效期從 到
<input id="d4311" class="Wdate" type="text" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'d4312\')||\'2020-10-01\'}'})"/>
<input id="d4312" class="Wdate" type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d4311\')}',maxDate:'2020-10-01'})"/>

注意:
兩個日期的日期格式必須相同

$dp.$ 相當於 document.getElementById 函式.
那麼為什麼裡面的 ' 使用 \' 呢? 那是因為 " 和 ' 都被外圍的函式使用了,故使用轉義符 \ ,否則會提示JS語法錯誤.
所以您在其他地方使用時注意把 \' 改成 " 或者 ' 來使用.

#F{$dp.$D(\'d4312\')||\'2020-10-01\'} 表示當 d4312 為空時, 採用 2020-10-01 的值作為最大值


示例4-3-2 前面的日期+3天 不能大於 後面的日期

日期從 到
<input type="text" class="Wdate" id="d4321"

onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'d4322\',{d:-3});}'})"/>
<input type="text" class="Wdate" id="d4322"

onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d4321\',{d:3});}'})"/>

使用 $dp.$D 函式可以將日期框中的值,加上定義的日期差量:
兩個引數: id={字元型別}需要處理的文字框的id值 , obj={物件型別}日期差量

日期差量用法:
屬性y,M,d,H,m,s分別代表年月日時分秒

設定明天為最小日期:minDate:'%y-%M-{%d+1}'

相關文章