如何生成其中具有不可更改的默认起始值的输入元素?例如,我正在从用户那里寻找一个数字,但我希望“333”已经在输入文本框中,因为所有输入都以该数字开头。我也不希望用户能够更改它。我需要 333 也成为价值的一部分,而不是仅仅通过样式添加,因为我需要对其进行验证。
问问题
1271 次
3 回答
1
使用 JavaScript 的一种可能性:
nine = document.getElementById("nine");
nine.addEventListener("keydown", function (ev) {
var el = this;
var value = el.value;
setTimeout(function () {
if (el.value.indexOf("333") != 0) {
el.value = value;
}
}, 0);
});
<input type="text" value="333" id="nine" />
于 2016-05-13T20:16:51.493 回答
1
我会按照 William B 的建议使用 2 个输入,但我会考虑是使用disabled
属性还是readonly
属性。该disabled
属性不允许聚焦第一个输入,默认浏览器样式将给它一个灰色背景。该readonly
属性将允许它集中并可能具有更理想的初始样式。
于 2016-05-13T20:08:10.627 回答
0
我建议使用 2 个看起来像单个输入的输入,第一个是只读的。看到这个小提琴:https ://jsfiddle.net/39whrqup/2/
<input readonly value="333" class="static-input">
<input class="nonstatic-input">
.static-input {
margin-right: -20px;
width: 50px;
border: 0;
}
.nonstatic-input {
border: 0;
}
在阅读用户输入时,您必须自然地预先添加静态部分:
var userInput = document.querySelector('input.static-input').value +
document.querySelector('input.nonstatic-input').value;
于 2016-05-13T19:56:39.663 回答