我有一个输入。我只想要数值。 我希望只有六个数字。 我该怎么做? 我有:
<input type="number" placeholder="YYMMDD" id="myKadA" maxlength="6" style="width:90px !important" onchange="checkMyKad()" size="8" class="form-control block-centered ic-input" required>
有一个css可以从输入框中删除滚动条。
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
-webkit-appearance: textfield;
}
以前它是input type="text"
而maxlength="6"
限制为六个字符长。我现在如何指定仅6位数字
答案 0 :(得分:2)
JAVASCRIPT WAY
HTML
<input type="number" placeholder="YYMMDD" id="myKadA" onkeydown="limit(this, 6);" onkeyup="limit(this, 6);" onkeyup="this.value = minmax(this.value, 0, 6)" required>
JS
function limit(element, max_chars)
{
if(element.value.length > max_chars) {
element.value = element.value.substr(0, max_chars);
}
}
function minmax(value, min, max)
{
if(parseInt(value) < min || isNaN(parseInt(value)))
return 0;
else if(parseInt(value) > max)
return 100;
else return value;
}
HTML WAY
<input type="number" placeholder="YYMMDD" id="myKadA" maxlength="6" min="0" max="6" required>
JQUERY WAY
<input type="number" placeholder="YYMMDD" id="myKadA" min="0" max="6" required>
var max_chars = 6;
$('#myKadA').keydown( function(e){
if ($(this).val().length >= max_chars) {
$(this).val($(this).val().substr(0, max_chars));
}
});
$("#myKadA").change(function() {
var max = parseInt($(this).attr('max'));
var min = parseInt($(this).attr('min'));
if ($(this).val() > max)
{
$(this).val(max);
}
else if ($(this).val() < min)
{
$(this).val(min);
}
});
答案 1 :(得分:1)
使用属性max和min作为输入类型编号
答案 2 :(得分:0)
由于maxlength
忽略了<input type"number"/>
属性,如here所述。
您可以尝试使用以下内容添加一些javascript验证:
HTML
<input onKeyDown="validateNum(event, this)" type="text" maxlength="6" max="6" min="6" placeholder="YYMMDD" id="myKadA" style="width:90px !important" onchange="checkMyKad()" class="form-control block-centered ic-input" required>
的Javascript
function validateNum(event, input) {
event.preventDefault();
var currVal = input.value ? input.value : "";
// Checks if the key pressed is a number and the right length
if(!isNaN(event.key) && currVal.length < 6){
input.value = currVal + event.key;
}
// Backspace functionality
else if(event.keyCode == 8 && currVal > 0) {
input.value = input.value.slice(0, -1);
}
}
答案 3 :(得分:0)
如果您只想在输入字段中输入数字,
<input type="number" max="6"/>
所以它渲染到输入类型编号字段,只允许6位数
答案 4 :(得分:0)
this看起来像是一个很有希望的答案。
答案 5 :(得分:0)
正如您在占位符-YYMMDD中提到的那样 我建议你使用input type =“date”
答案 6 :(得分:0)
最大长度不适用。 你必须使用jQuery / Javascript。 下面是一个工作片段。
<强> HTML:强>
<form>
<label for="myKadA" class="control-label">Number:</label>
<input type="number" id="myKadA" data-max="6" class="form-control" required>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<强> jQuery的:强>
<script>
$(document).ready(function () {
$(".btn-primary").click(function (e) {
e.preventDefault();
var keyObj = $("#myKadA");
var maxLength = parseInt(keyObj.attr('data-max'));
if((keyObj).val().length !== maxLength){
alert("You must enter exactly " + maxLength + " digits");
}
});
})
</script>
答案 7 :(得分:0)
尝试
<input type="number" onKeyPress="if(this.value.length==6) return false;"/>
否则您可以将输入类型更改为“月”
<input type="month" min="2018-03" value="2018-05">
希望这行得通。