javascript - 我的数字小键盘不显示密码字段中的按键
问题描述
我正在从“ building-cross-platform-mobile-pawan-lingras ”一书中做练习,但是每次单击键盘时,数字键盘都不会在文本框中显示值。
我已经将 html 文件与 JS 文件和引导程序链接起来。
下面是html的代码示例:
Password:<input type="password" id="passcode"></input>
-----
----
<div data-role="controlgroup" data-type="horizontal">
<a data-role="button" onclick="addValueToPassword(4)">4</a>
<a data-role="button" onclick="addValueToPassword(5)">5</a>
<a data-role="button" onclick="addValueToPassword(6)">6</a>
</div>
JavaScript 示例:
function addValueToPassword(button)
{
var currVal=$("passcode").val();
if(button=='bksp')
{
$("#passcode").val(currVal.substring(0, currVal.length-1));
}
else{
$("#passcode").val(currVal.concat(button));
}
}
解决方案
您在 var行中错过了#符号。currVal=$("#passcode").val()
jQuery 将无法找到 DOM 元素密码,因此$("passcode").val()
返回undefined。当你在 undefined 上调用concat 函数时,它会抛出异常。您可以将 if...else 替换为三元运算符,如下所示。
function addValueToPassword(button)
{
var currVal=$("#passcode").val();
let passCode = button === 'bksp' ? currVal.substring(0, currVal.length-1) : currVal.concat(button);
$("#passcode").val(passCode);
}
function addValueToPassword(button)
{
var currVal=$("#passcode").val();
if(button=='bksp')
{
$("#passcode").val(currVal.substring(0, currVal.length-1));
}
else
{
$("#passcode").val(currVal.concat(button));
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Password:<input type="password" id="passcode"></input>
<div data-role="controlgroup" data-type="horizontal">
<a data-role="button" onclick="addValueToPassword(4)">4</a>
<a data-role="button" onclick="addValueToPassword(5)">5</a>
<a data-role="button" onclick="addValueToPassword(6)">6</a>
</div>
推荐阅读
- php - Laravel 8 应用程序 - 当我尝试下载压缩文件时无法访问该站点
- c++ - 如何在 xamarin UWP 中使用 C++ lib (.so)
- java - : 创建类路径资源中定义的名称为“requestMappingHandlerMapping”的 bean 时出错
- reactjs - 如何将数据从模板组件传递到反应中的其他组件
- laravel - 为什么文件 /resources/views/errors/404.blade.php 没有在无效的 url 上打开?
- python - 根据分组场景熊猫中的最大值数替换列值
- ruby-on-rails - 为什么会出现错误`发生未处理的低级错误。
`发生?即使我验证了 SECRET_KEY_BASE 已在 Linux 中正确设置 - python-3.x - Scrapy 使用 files.middleware 下载不带扩展名的给定文件
- postgresql - 如何在我的虚拟机上使用 dbeaver 连接到 Postgresql 数据库(在我的本地机器上)?
- excel - 来自excel的TinyMCE粘贴