簡體   English   中英

計划的HTML自定義輸入類型

[英]HTML Custom Input type for schedule

我正在尋找一種方法來為正在使用的Web應用程序的用戶輸入任務的“時間表”,並將其用於UI中的多個頁面。

我正在尋找可以讓我配置是否手動觸發,每月/每周/每天/每小時等運行的東西,然后根據配置的頻率顯示子字段(例如每月的某天+每月的某天,某天的某天)進行配置每周+一天中的時間,僅一天中的一天中的時間,依此類推。

我當時想我可以只使用多個選擇字段,而當選定的頻率指示我不需要它們時,使用Javascript隱藏/顯示適當的子字段。 但是,由於我想在多個頁面上使用它,因此,如果有更好的方法,我不想在頁面之間復制一堆東西。

在內部,它很可能會轉換為crontab格式並使用Spring進行調度,但是由於它缺乏用戶友好性,所以我不想在文本框中顯示crontab格式。

有人有什么建議嗎? 我將Struts 2用於UI,並且不使用任何Javascript庫。 不知道這是jQuery之類的東西是什么類型的東西還是什么。

謝謝。

jQuery是一種選擇,因為它使事件處理程序在瀏覽器之間保持一致,但是,編寫一個簡潔的方法以簡潔的方式在所有瀏覽器中實現事件也相當瑣碎,因此,僅針對此小部件,我不建議在jQuery上創建依賴項。

哦,將輸入類型想像為具有不錯的公共界面的小部件或組件,您可以將其實例化並嵌入到需要它的任何頁面中。 看一下大多數Web日歷解決方案(例如Google日歷)如何實現這一目標,因為它們也需要考慮定期事件,並且對於最終用戶仍然保持簡單性。 他們有解決UI問題的解決方案,這些問題使重復時間變得非常復雜,例如:

  • 7月13日每5年
  • 在第二個星期二每2個月
  • 每周二,周三
  • 每4天

對於最終用戶而言,這是一種簡單的方式。 這里有一些例子:

每年重復,自定義步長

替代文字http://img17.imageshack.us/img17/8122/picture1be.png

每月重復,並在每月的某天使用自定義步長

替代文字http://img706.imageshack.us/img706/8036/picture2so.png

使用一個包含小部件的自包含腳本文件,假設您可以在需要它的每個頁面上引用ScheduleWidget.js ,或者將它捆綁在一個縮小/打包的腳本中,以便所有頁面都可以訪問它。

保持接口簡單,因此可以輕松地將其插入任何DOM元素中。

var widget = new ScheduleWidget();
var container = document.getElementById("scheduleContainer");
// getElement() returns the root DOM node of the dynamically constructed widget.
container.appendChild(widget.getElement());

實例化ScheduleWidget對象時,它將設置所有事件綁定,因此列表選擇,更改等會根據需要觸發邏輯/ UI中的更改。

好的,所以我最終使用了Struts 2組件標簽,並僅向其傳遞參數以生成具有不同名稱的適當代碼。 這對我來說是最好的,因為使用它仍然可以嵌套Struts 2標簽,並且我不確定是否可以通過定義自己的taglib來做到這一點。

我也一直在尋找這個問題的答案。

我確實認為Google日歷是如何很好地完成此工作的一個很好的例子,我認為對於某種JQuery插件或其他javascript庫來說,仍然是一個很好的機會。

對於任何給定的Web應用程序,很少需要GUI能夠在crontab中創建每個條目。 例如,Google日歷具有一系列令人印象深刻的計划選項,但仍然不支持“從現在開始每隔一分鍾”。

對於我現在正在使用的Web應用程序,“每月”上的所有內容都太長了,“每日”下的任何內容也無法正常工作,我只想擁有以下選項

daily options
 daily
 once every two, three or four days
weekly options
 A set number of times per week (like:once, twice, etc)
 weekly on a schedule (like: Tues, Thurs, and Sat)
monthly options
 A set number of times per month (like: four, five, six)
 monthly on a schedule (like: 1st, 7th, 13th, and 21st)
 monthly on a weekly schedule (like: 1st Tuesday, 2nd Wednesday, Last Friday)

但是對我來說,很明顯我想要的只是一個更大的調度頻率系統的子集,該系統包括每小時,“分鍾”,每年和逐年+選項

我將進一步研究javascript的show / hide選項,並在完成這些操作時嘗試記住進一步擴展此答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM