这里是文本字段。我希望用户只输入210,220,230,...等值,并限制输入215,225,...
我正在寻找建议。我对javascript不太了解。
答案 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()
,input
或onblur
处理程序对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>