javascript - 如何将动态输入限制为仅一位数并锁定按键,除了使用纯Javascript的旋转按钮?
问题描述
我创建了一个动态输入,它应该只使用微调器(箭头按钮)接受 0 到 5 之间的数字,并且应该限制来自键盘的手动输入。我已经尝试过[this][1]
,但它在我的代码中不起作用。我有两个 java 脚本文件 data.js 包含要读取的对象,其他文件包含一个读取对象并动态显示它们的函数请帮助我知道我在哪里做错了吗?谢谢
//data.js
var catalogArray = [
{
code: 100,
name: "T Shirt c100",
desc: "Lorem ipsum, or lipsum as it is sometimes known as",
price: 150,
image: "./images/img100.jpg"
},
{
code:101 ,
name: "T Shirt c101",
desc: "Lorem ipsum, or lipsum as it is sometimes known as",
price: 250,
image: "./images/img101.jpg"
}
];
//function.js
function chargerArticles() {
var articles = document.getElementById("content");
var catalog=catalogArray;
for (var i =0; i < catalog.length; i++) {
//Command Input Area
var zoneCmd=document.createElement("div");
zoneCmd.setAttribute("class", "border");
var inputCmd=document.createElement("Input");
inputCmd.setAttribute("class", "qty");
//inputcmd all properties
inputCmd.type="number";
// inputcmd.maxLenght="1";
// inputcmd.onKeydown=false;
inputCmd.value=0;
inputCmd.min=0;
inputCmd.max=5;
zoneCmd.appendChild(inputCmd); //child 1
//zoneCmd child of article element
article.appendChild(zoneCmd);
//finally article as a child of articles
articles.appendChild(article);
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page Title</title>
<link rel="stylesheet" type="text/css" href="css/mystyle.css">
<script src="js/data.js"></script>
<script src="js/codeboutique.js"></script>
</head>
<body onload="chargerArticles()">
<!-- <div class="border"><input class="qty" id="0-qte" type="number" min="0" max="5"
"><button class="cartBtn hvr-underline-btn" id="0-cmd"
"> ADD TO CART</button></div> -->
<div class="mainDivClass">
<section id="content">
</section>
</div>
</body>
</html>
解决方案
目前还不清楚“旋转按钮”是什么类型的东西,所以我无法解决你问题的那一部分。
但是您的另一个要求是不响应键盘的输入。
这可以很容易地完成。
为了防止键盘事件影响输入,只需编写一个响应“keydown”事件的侦听器函数。
let input = document.createElement('input');
document.body.appendChild(input);
input.addEventListener('keydown', e => {
// console.log('keydown e.key:', e.key);
// prevent default input response
e.preventDefault();
// take action on up or down arrow key
if (e.key === "ArrowUp") {
input.value = 'Up Arrow';
} else if (e.key === 'ArrowDown') {
input.value = 'Down Arrow';
} else {
console.log('key blocked: ', e.key);
}
});
推荐阅读
- javafx - 我如何在这个 javafx 程序中为我的路径和背景着色
- python - 在 python 中使用 spritesheet 时,我不断收到错误消息
- reactjs - 如何使用 TypeScript 和 React 从 API 响应初始化接口
- javascript - 空文件_get_contents('php://input')
- html - div的位置不正确
- python - INSERT 函数不抛出错误,仍然不更新数据库表
- packagist - 我如何将packagist 文件用于我的控制器?
- python - super() 和更改合作方法的签名
- multithreading - 使用 MPI/OpenMP 混合编程的奇怪问题。并行区域中的 OpenMP 线程数始终为 1
- javascript - 如何在 console.log 中返回 AM/PM 的值