2017-05-25 81 views
0

簡而言之:我想在不使用Acrobat格式選項的情況下在文本字段上使用Acrobat DC的內置日期選擇器。Acrobat DC:帶日期選擇器的未格式化文本字段?

全部內容:
我試圖啓用我的表單中的日期字段來接受各種各樣的日期格式作爲輸入,包括日期選擇器。我已經編寫了驗證代碼來完成此操作,但Acrobat在驗證代碼觸發前拒絕輸入,並將日期重寫爲可接受的格式。這意味着我必須將字段格式設置爲「無」,以便我的驗證代碼能夠正確觸發,從而在流程中丟失內置的日期選擇器。雖然這不會使表格失效,但它阻礙了用戶體驗,這是我一直在努力在這種形式下進行強有力的改進。

爲了說明這個問題:
理想/目標:

  • 輸入 「2017年5月25日」 到日期字段
  • 輸入驗證碼將這個以 「2017年05 25」
  • 的Acrobat格式適用(預計:「yyyy mm dd」),啓用日期選擇器
  • Acrobat日期選取器可用於更快速的輸入更改

當前問題:

  • 輸入 「2017年5月25日」 到日期字段
  • 的Acrobat格式適用(預計: 「月日」),拒絕輸入
  • 驗證代碼無關與
  • 工作
  • Acrobat中的日期選擇器可更快速的輸入改變

當前不理想的解決方案:

  • 輸入 「5月25日,2017年」 進日期字段
  • 輸入驗證碼將這個以 「2017年05 25」
  • 的Acrobat格式禁用
  • 沒有Acrobat中的日期選擇器

我看到三種可能解決方案,但不知道如何(或者如果我能)實現它們。

  1. 以某種方式搶佔Adobe的內置格式化腳本。我已經嘗試過調用event.change和event.willCommit,但我顯然不明白它們足以正確使用它們。另外,我認爲腳本的優先順序是Keystroke>驗證>格式>計算,但看起來我錯了,或者Adobe的內置格式是特殊的。
  2. 以某種方式強制啓用日期選擇器。我對此沒有很高的期望。我不明白爲什麼Adobe沒有將該死的東西變成複選框選項。
  3. 以某種方式將格式選項設置爲通配符。像過去三年一樣,我不知道這是否可能,但這似乎最有可能發揮作用。基本上,讓格式接受任何東西。
+0

也許刪除所有[eventhandlers](https://stackoverflow.com/questions/2837542/is-it-possible-to-remove-all-event-handlers-of-a-given-element-in-javascript )是一種選擇。 –

回答

0

您需要使用兩個字段。第一個是主字段,並使用自定義格式腳本來格式化日期,而不是預定義日期格式之一。在它旁邊是一個格式化日期的字段,它的寬度足以讓您選擇器,將其文本顏色設置爲白色,以便值中沒有任何字符實際顯示。當用戶退出第二個字段時,使用OnBlur操作更新第一個字段。如果你把它們放在一起,對最終用戶來說,它們看起來是同一個領域。

0

除了@joelgeraci的回答之外,您還可以考慮使用非Adobe日期選擇器(無論如何都需要最新版本的Acrobat/Reader)。有幾個在那裏,一些好一些少一點...

無恥的插件:你真的碰巧已經創建了PDF格式的最精巧和可配置的日期選擇器;欲瞭解更多信息和報價,請隨時與我聯繫。