考虑下面的 MWE,我想验证日期条目以及要输入的电子邮件地址,因为它们应该使用包手册中仅简要提到的验证选项hyperref
:
验证 JavaScript 代码以验证输入
梅威瑟:
\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\minisec{Time schedule:}
\TextField[backgroundcolor=gray!10,borderwidth=0,maxlen=10,value=01/09/2015,width=6em]{Proposed starting date of the study:}\\
\noindent\TextField[backgroundcolor=gray!10,borderwidth=0,maxlen=10,value=31/12/2016,width=6em]{Proposed completion date of the study:}\\
\TextField[backgroundcolor=gray!10,borderwidth=0,maxlen=10,[email protected],width=20em]{E-Mail:}\\
\end{Form}
\end{document}
答案1
如果您知道使用 Javascript 来验证日期或电子邮件(我不知道),您可以通过对 Acrobat 规范中的某些示例进行逆向工程来调整我整理的这个示例(您不会在文档中找到这个示例,hyperref
而且我在上下文中找不到任何预先存在的示例hyperref
)。
\documentclass{article}
\usepackage{hyperref}
\usepackage{pdfcomment} %why I need this?
\begin{document}
\TextField[
validate = {
event.rc = true;
if(event.value != "A" && event.value != "B"){ /*your validation code goes here*/
app.alert("Error, value must be A or B");
event.rc=false;
}
}
]{A or B:}
\end{document}
我使用 Acrobat 9.4.1 对其进行了测试。
这是我第一次用 Javascript 编写代码,我不确定是否可以从 Acrobat Reader 中嵌入的 Javascript 加载库或执行其他奇特的操作。如果您发布您的 Javascript 代码,我将学到更多。
我找不到验证代码语法错误的方法,如果有语法错误,脚本基本上会被忽略。例如,一个小小的错误可能会导致代码根本无法运行。
代码基于:http://khkonsulting.com/2012/11/validating-field-contents/