如何将输入类型“数字”限制为2的幂?

时间:2016-10-11 12:30:50

标签: javascript html input numbers

我想限制<input type=number>仅接受2的权力,例如1,2,4,8,16 ......

是否有纯HTML解决方案,或者我应该使用javascript?

3 个答案:

答案 0 :(得分:1)

你肯定必须使用脚本......在html中没有静态解决方案来检测该模式.......然而

如果你想与静态或动态字符串模式匹配,那么在html中你可以选择使用&#39; pattern&#39;一些正则表达式模式的属性..例如......

你可以使用<input type=text pattern='^\d\d/\d\d/\d\d\d\d$' > 强制用户以dd / MM / yyyy的模式输入日期,您可以在http://regexone.com上了解有关正则表达式的更多信息... 正则表达式代表正则表达式

答案 1 :(得分:1)

我猜你需要javascript。对此没有纯HTML解决方案。

答案 2 :(得分:0)

我将发布我的javascript方法来执行此操作(因为答案说纯HTML不可能)

<input id="koko" type="number" min=1 onchange="applyChange(validate(this))">
 <span id='note' hidden><font color=red>Please enter powers of two</font> 

</span>
<script>
var saver=1;
function applyChange(num)
{
 document.getElementById('koko').value=num;
}
function validate(input)
{
 document.getElementById('note').hidden=true;
 var number=input.value;
 if(Number.isInteger(Math.log2(number)))
     return (saver=number);
 else
  {
  document.getElementById('note').hidden=false;
   return saver;
 }
}
</script>