我有一个输入框:
<input type="text"/>
我该如何允许只输入不大于某个预设值的数字,例如10,这样每次尝试输入大于10的数字都将被禁止?
我有一个输入框:
<input type="text"/>
我该如何允许只输入不大于某个预设值的数字,例如10,这样每次尝试输入大于10的数字都将被禁止?
Javascript
function createValidator(element) {
return function() {
var min = parseInt(element.getAttribute("min")) || 0;
var max = parseInt(element.getAttribute("max")) || 0;
var value = parseInt(element.value) || min;
element.value = value; // make sure we got an int
if (value < min) element.value = min;
if (value > max) element.value = max;
}
}
var elm = document.body.querySelector("input[type=number]");
elm.onkeyup = createValidator(elm);
HTML
<input type="number" min="0" max="10"></input>
我没有测试过,但我认为它应该可以工作。
<script>
元素放在<input>
元素之后)。 - Bart立即将值转换为数字,然后与最大值进行比较:
window.onload = function () {
var textbox = document.getElementById("text1");
var maxVal = 10;
addEvent(textbox, "keyup", function () {
var thisVal = +this.value;
this.className = this.className.replace(" input-error ", "");
if (isNaN(thisVal) || thisVal > maxVal) {
this.className += " input-error ";
// Invalid input
}
});
};
function addEvent(element, event, callback) {
if (element.addEventListener) {
element.addEventListener(event, callback, false);
} else if (element.attachEvent) {
element.attachEvent("on" + event, callback);
} else {
element["on" + event] = callback;
}
}
演示: http://jsfiddle.net/jBFHn/
在您输入内容时,如果该值不是数字或者超过了最大值,那么 “input-error” 类将会被添加到该元素中。您可以删除整个类更改,并加入您自己的内容。
这是我在项目中使用该属性的方式。
<script>
function integerInRange(value, min, max, name) {
if(value < min || value > max)
{
document.getElementById(name).value = "100";
alert("Write here your message");
}
}
</script>
我的输入是这样的
<input type="text" id="yyy" name="xxx" onkeyup="integerInRange(this.value, 0, 100, "yyy")" />
if(value < min || value > max)
{
document.getElementById(name).value = "100";
$.pnotify({ title: 'UYARI', text: 'Girilen değer ' + min + ' ile ' + max + ' arasında olmalıdır.', type: 'error' });
$(".ui-pnotify-history-container").remove();
}
}
text
没有内置的功能,因为它的目的是文本。但是type="number"
有内置的功能。 - Esailija