You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jsPDF Library创建仅支持数字的输入字段?

用jsPDF创建仅允许数字的输入字段及添加JavaScript控件

jsPDF本身没有直接提供数字限制的输入字段类型,但可以通过PDF AcroForm的JavaScript事件来实现输入验证,同时为字段添加交互控件。以下是具体实现步骤:

1. 创建基础文本输入字段

首先用addField方法创建一个文本类型的输入字段,指定位置和尺寸:

const doc = new jsPDF();
// 参数:字段名、类型、x坐标、y坐标、宽度、高度
doc.addField('numericInput', 'text', 20, 20, 150, 25);

2. 添加实时数字输入限制

通过addScript方法为PDF添加内置JavaScript,绑定字段的Keystroke事件,在用户输入时实时过滤非数字内容:

doc.addScript(`
  const numericField = this.getField("numericInput");
  // 按键事件:只允许输入数字(包括退格键)
  numericField.setAction("Keystroke", 
    "event.rc = /^\\d*$/.test(event.change) || event.keyCode === 8;"
  );
`);

这段脚本会在用户输入时检查内容,只有数字或退格键会被允许,其他字符直接拦截。

3. 添加失去焦点时的验证

为了确保字段最终内容是有效数字,绑定Validate事件,在字段失去焦点时做二次校验:

doc.addScript(`
  const numericField = this.getField("numericInput");
  // 验证事件:确保内容是纯数字
  numericField.setAction("Validate", 
    "if(!/^\\d+$/.test(event.value)) { event.rc = false; app.alert('请输入有效数字'); }"
  );
`);

如果用户输入了非数字内容(比如通过粘贴),会弹出提示并阻止内容提交。

4. 可选:设置数字格式

还可以为字段设置数字格式属性,让阅读器自动识别为数字类型,增强兼容性:

const field = doc.getField('numericInput');
// 设置字段为数字格式,保留0位小数
field.setProperty('format', {
  type: 'number',
  decimalPlaces: 0
});

注意事项

  • 上述JavaScript是PDF内置脚本,依赖Adobe Acrobat或支持PDF JS的阅读器(部分轻量阅读器可能不支持)。
  • 如果需要更复杂的交互(比如限制数字范围),可以扩展Keystroke或Validate事件的脚本逻辑。

内容的提问来源于stack exchange,提问作者Look8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 09:18:17