Html 哪个输入元素只接受数字并允许有限数量的字符

Html 哪个输入元素只接受数字并允许有限数量的字符,html,Html,我正在尝试实现一个(我所在国家的邮政编码)输入字段,该字段只接受数字并将字符数限制为5 哪个html输入类型和属性更适合此任务? <input type="number" minlength="5" maxlength="5" name="zipcode" /> 请参见 pattern=“\d{5}”也可以工作。但请确保在目标脚本中重新检查它,因为表单元素可以被操作。一个完整的示例(使用JQUERY

我正在尝试实现一个(
我所在国家的邮政编码
)输入字段,该字段只接受数字并将字符数限制为5

哪个html输入类型和属性更适合此任务?


<input type="number" minlength="5" maxlength="5" name="zipcode" />
请参见


pattern=“\d{5}”
也可以工作。但请确保在目标脚本中重新检查它,因为表单元素可以被操作。

一个完整的示例(使用JQUERY),用于检查
中的
更改
键控
。checkFieldNum
值和提交表单时的值

JS

HTML



请参阅带有正则表达式的html5输入类型文本接受模式。使用带有正则表达式的html5输入类型文本接受模式会阻止我提交表单,因为输入无效。但它仍然允许我输入任意数量的字符。我想要的是通过使用带有maxlength属性的输入类型文本可以实现的行为。但这只允许数字。HTML5中没有其他功能(验证服务除外),您必须截取输入键值并生成js代码for@MisterJojo我不在乎其他的邮政编码。忘了这是邮政编码吧。我想要一个只接受固定字符长度的数字的输入字段。邮政编码不是数字输入。您不会增加或减少邮政编码,在许多情况下,邮政编码包含非数字字符,例如5+4格式,或者当您需要支持多个国家/地区时。使用
type=“text”
这个问题是“哪个输入元素只接受数字”,尽管我只能填充数字,我可以输入任意数量的字符。@zzzzBov我不在乎其他邮政编码。忘了这是邮政编码吧。我查找的输入字段只接受具有固定字符长度的数字这不起作用!,我可以输入任意长度的字母数字字符。是的,您可以输入所有内容,但如果不是数字,则无法发送表单本身!要立即检查输入,您需要监听字段的“onkeyup”或
onchange
,检查值并向用户输出错误。您还必须在提交时执行
preventDefault
操作。你想要一个代码示例吗?谢谢你的回答,但我知道我可以用javascript来做,问题是是否有一个内置的html元素可以做到这一点。
<input type="text" name="zipcode" pattern="[0-9]{5}" />
    function checkNum(value)
    {
      return value.match(/\d{5}/);
    }
    $(document).ready(function(){
        //  trigger if element-value with class="checkFieldNum" changes or key is pressed
      $('.checkFieldNum').on('change keyup',function(event){
        if(checkNum($(this).val()) === false)
        {
            $(this).css({background:'tomato'})
        }
        else
        {
            $(this).css({background:''})
        }
      })
        //  trigger if form should be submitted
      $('.formClassForSubmit').on('submit',function(event){
        event.preventDefault();
        var goOn = true;
        $('.checkFieldNum').each(function(){
          if(checkNum($(this).val()) === false)
          {
            goOn = false;
            alert($(this).attr('name') + ' has wrong value')
          }
        })
        if(goOn === true)
        {
          // In this case, everything is OK and go on whatever you will do..
        }
      })
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <form action="?" method="post" class="formClassForSubmit">
      <input type="text" class="checkFieldNum" name="zipcode1" pattern="[0-9]{5}" />
      <input type="text" class="checkFieldNum" name="zipcode2" pattern="\d{5}" />
      <input type="submit" name="send" value="send" />
    </form>