如何解决在启动时不满足条件
.map()
我只想在文本框中输入数字。条件不起作用。如果文本框中的值小于0或大于100。那么我会将其重置为0。重置正在工作,但字符也在输入中。
解决方法
您可以使用regex删除所有不是数字的内容。我还更改为input事件,只要输入更改,该事件就会触发。
如果您想强制输入数字,也可以将类型设置为type="number"
。这样做的好处是,它将自动显示手机和平板电脑上的数字键盘,尽管您也可以使用inputmode="numeric"
attribute
// Get the textbox
const telugu = document.getElementById("telugu");
// Add event that fires whenever the input changes
telugu.addEventListener("input",() => {
// Replace everything that is not a digit with nothing
const stripped = telugu.value.replace(/[^\d]/g,"");
// If the value is below 0 or above 100 set it to 0,else enter the stripped value
stripped < 0 || stripped > 100
? telugu.value = 0
: telugu.value = stripped;
});
<label for="telugu">Telugu</label>
<input type="text" name="telugu" id="telugu" maxlength="3"/>
没有评论:
const telugu = document.getElementById("telugu");
telugu.addEventListener("input",() => {
const stripped = telugu.value.replace(/[^\d]/g,"");
stripped < 0 || stripped > 100
? telugu.value = 0
: telugu.value = stripped;
});
<label for="telugu">Telugu</label>
<input type="text" name="telugu" id="telugu" maxlength="3"/>
简体:
function validateValue(event) {
var input = event.target;
var stripped = input.value.replace(/[^0-9]/g,""); /* Everthing that is not (^) in the range of 0 through 9 */
if(stripped < 0 || stripped > 100) {
input.value = 0;
} else {
input.value = stripped;
}
}
<label for="telugu">Telugu</label>
<input type="text" oninput="validateValue(event)" name="telugu" id="telugu" maxlength="3"/>
,
有不同的方法。
input
:当输入值更改时触发。
change
:当输入值更改并且元素失去焦点(不再选择)时触发。
blur
:在输入失去焦点时触发。
您使用哪个事件,取决于何时要检查输入。如果要在更改值后立即检查input
,请使用blur
。否则,请使用change
或let input = document.querySelector('#telegu');
input.addEventListener('input',() => {
// Your check
});
input.addEventListener('change',() => {
// Your check
});
input.addEventListener('blur',() => {
// Your check
});
。
示例:
{{1}},
您应该使用 parseInt()函数对s1变量进行解析。
function isNumber(event){
var k = event.keyCode;
console.log(k);
if(k>47 && k<58){
console.log("entered");
var s1 = parseInt(document.getElementById("telugu").value);
console.log('s1',s1);
if(s1<0 || s1>100){
console.log("tel")
document.getElementById("telugu").value = 0;
}
}else{
document.getElementById("telugu").value = null;
}
}
<label> Telugu</label>
<input type="text" onkeyup="return isNumber(event)" name="telugu" id="telugu" maxlength="3"/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。