我想限制用户输入以5结尾的数字

时间:2018-11-20 18:52:46

标签: javascript html forms text

这里是文本字段。我希望用户只输入210,220,230,...等值,并限制输入215,225,...

我正在寻找建议。我对javascript不太了解。

3 个答案:

答案 0 :(得分:0)

如果您只想防止以'5'结尾的字符串:

 document.getElementById("input").onblur = checkEND;

    function checkEND() {
      let firstValue = event.currentTarget.value;
      if(firstValue.endsWith('5')){
       warnUser()
      }
    }

这不会验证字符串是否是有效数字。

答案 1 :(得分:0)

function testInput() {
    var key = window.event.keyCode;
    var x = document.getElementById('textarea').value
    var y = document.getElementById('textarea2').value
    var z = parseInt(x, 10);
    if (z+10 == y) {
       document.getElementById('result').innerHTML = "valid";
       } else {
       document.getElementById('result').innerHTML = "invalid";
       }
}
<textarea maxlength="3" id="textarea">5</textarea>
<textarea maxlength="3" id="textarea2">15</textarea>
<button onclick="testInput()">Test Input</button>
<div id="result"></div>

第一个输入是您的第一个数字,第二个输入是您的第二个数字。 如果您想知道为什么这不能回答他的OG问题,请查看评论

答案 2 :(得分:0)

您可以通过setCustomValidity()inputonblur处理程序对onchange个元素(https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement中的oninput个进行试验。如果您对该值不满意,请设置一条错误消息,否则设置一个空字符串。只要错误消息设置为非空,就会显示该错误消息,并且表单拒绝提交:

function check5() {
  cgiftcardq.setCustomValidity(cgiftcardq.value.endsWith('5')?"Nope, it can not end with 5":"");
}
<form>
  <input name="cgiftcardq" class="text_field" id="cgiftcardq" size="3" autocomplete="off" type="text" onblur="check5()">
  <input type="submit" value="Send">
</form>

(StackOverflow代码段会干扰表单提交-可能是安全性的一部分-因此成功提交只会使表单消失)


由于setCustomValidity()并非在任何地方都可以使用(根据compatibility table,它不能在非Andorid手机上使用),因此可能还会提到经典的“预算”解决方案:您可以简单地禁用发送按钮,只要您对输入不满意:

function check5() {
  if(cgiftcardq.value.endsWith('5')){
    send.disabled=true;
    message.innerHTML="Nope, it can not end with 5";
  } else {
    send.disabled=false;
    message.innerHTML="OK";
  }
}
<form>
  <input name="cgiftcardq" class="text_field" id="cgiftcardq" size="3" autocomplete="off" type="text" oninput="check5()">
  <input id="send" type="submit" value="Send" disabled>
</form>
<div id="message"></div>