Javascript 在数字输入中显示自定义文本

Javascript 在数字输入中显示自定义文本,javascript,string,object,key,Javascript,String,Object,Key,我有一个数字输入,我试图将其值设置为一些自定义文本。我不想使用type=“text”,因为我想允许用户单击向上和向下微调器箭头来更改值 <input type="number" id="note0" min="0" max="119" step="1" value="0"/> document.getElementById(“注意”+0).value=“CsMi

我有一个数字输入,我试图将其值设置为一些自定义文本。我不想使用type=“text”,因为我想允许用户单击向上和向下微调器箭头来更改值

<input type="number" id="note0" min="0" max="119" step="1" value="0"/>
document.getElementById(“注意”+0).value=“CsMin1”

您可以使用占位符属性来显示文本,并使用CSS隐藏
输入的实际值。通过防止输入上的按键、输入和拖放事件,可以防止用户在没有箭头的情况下更改值。当输入值改变时,如果为正,则按下向上微调器箭头,如果不是,则按下向下微调器箭头;使用此信息,可以将占位符设置为适当的值以满足您的需要

例如:

const input=document.getElementById(“note0”);
[“keydown”、“input”、“drop”].forEach(ev=>input.addEventListener(ev,函数(e)){
e、 preventDefault();//防止用户更改输入值
}));
addEventListener(“输入”,函数(e){
如果(this.value>=1){//按下向上箭头
this.placeholder=“text1”;
}否则{//按下向下箭头
this.placeholder=“text2”;
}
this.value=”“;//重置值以显示占位符
});
input[type=number]:-webkit内部旋转按钮,
输入[type=number]:-webkit外部旋转按钮{
不透明度:1;/*显示webkit浏览器的箭头*/
}
输入[类型=数字]{
颜色:透明;/*隐藏输入值*/
}
输入[类型=编号]::占位符{
颜色:黑色;/*更改占位符颜色*/
字体大小:粗体;
}

您的
类型为“number”,而“CsMin1”显然不是一个数字。我仍然希望使用它,因为它在元素中有上下箭头,但将值更改为字符串。浏览器不愿意配合这个愿望。@chuviethechorkie这在本机上是不可能的,但你可以有一个文本输入,并让它改变它的价值,箭头键按下JS这也是可能的
document.getElementById("note"+0).value = "CsMin1";