É possível restringir a entrada de `TextField` apenas a números?

É possível restringir a entrada de `TextField` apenas a números?

Eu gostaria de ter um TextFieldque contenhaapenas númerospara marcar um encontro como [TextField]/[TextField]/[TextField]. Eu também preciso restringir o comprimento, masfoi perguntado antes.

Comparando duas saídas diferentes

MWE:

\documentclass{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{hyperref}

\begin{document}

\begin{Form}
    \TextField[width=1em,charsize=7pt,maxlen=2]{Text}
\end{Form}

\end{document}

Estou usando o Acrobat Reader DC e é preferível que a resposta a esta pergunta (que parece improvável de ser respondida) tenha os seguintes requisitos:

  1. Deve funcionar na maioria dos visualizadores possíveis.
  2. Se a entrada contiver texto ou números misturados com texto ou qualquer outro caractere que não seja número então o código deverá negar a entrada, ou seja, não deveremos conseguir ver como é um "a" ou "b1" ou "bb" escrito em nosso visualizador, mas "11", "99", "01" etc.

Obrigado!!

Responder1

Uma versão simples que gera NaN(não um número) se não for um número. Você pode simplesmente incluir mais um pouco de JavaScript para verificar se está NaNe então esvaziar o campo se for isso que você deseja.

Observação: o JavaScript sempre depende um pouco do visualizador. Eu só testei com o Okular.

\documentclass{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{hyperref}

\begin{document}

\begin{Form}
    \TextField[width=1em,charsize=7pt,maxlen=2,name=text,calculate={this.getField('text').value=Number(this.getField('text').value)}]{Text}
\end{Form}

\end{document}

informação relacionada