PDF表单中如何使用JavaScript对比子字符串?
解决PDF表单JS判断文本框首字符的问题
嘿,我知道你在PDF表单里用JS实现首字符判断预填时遇到了麻烦——之前用substr(0,1)没成功对吧?大概率是没处理空值的情况,或者PDF的JS环境对方法的兼容性问题,给你个靠谱的解决方案:
修正后的可用代码
var f = this.getField("TextField1"); var g = this.getField("TextField2"); // 先确保TextField1有值,再检查首字符是不是"1" if (f.value && f.value.charAt(0) === "1") { g.value = "foobar"; } else { // 可选:如果首字符不符合要求,可以清空TextField2,根据你的需求调整 // g.value = ""; }
为啥之前的写法不灵?
- 要是TextField1是空的,
f.value.substr(0,1)会返回空字符串,这时候和"1"对比肯定不成立,你可能没注意到空值的情况,误以为逻辑错了。 - PDF的JavaScript运行环境和浏览器有点不一样,
charAt(0)是更通用的获取首字符的方法,兼容性更稳,比substr不容易出问题。
小优化建议
- 要是以后需要判断字母类的首字符,想忽略大小写的话,可以加个转大小写的处理:
f.value.charAt(0).toLowerCase() === "a"(当然你现在是数字,这个只是备用技巧)。 - 把触发事件改成
onChange会比onBlur更及时,用户输入完立刻就能触发预填,体验更好。
内容的提问来源于stack exchange,提问作者Ingmar
相关产品推荐
相关产品推荐

