[英]Javascript - onblur function cannot change the value of the textbox
我有一些文本框允许用户输入0到20之间的数字。所以我有一个js验证代码来测试他们是否遵循规则。
我有以下文本框:
<input type="textbox" name="tx1" onblur="checkValue(this.value)" />
<input type="textbox" name="tx2" onblur="checkValue(this.value)" />
....
然后我写一个像这样的js函数:
function checkValue(value) {
if (value > 20) {
return this.value = 20;
} else if (value < 0){
return this.value = 0;
} else if (value == '' || isNan(value)) {
return this.value = 0;
} else {
return this.value;
}
}
我试图通过console.log()进行测试。 我试过警报('hi')并且它有效。 但是,在满足上述条件时,它根本不会改变价值。 那么有人可以帮我解决这个问题吗?
尝试这个
<input type="textbox" name="tx1" onblur="checkValue(this)" />
function checkValue(sender) {
var value = parseInt(sender.value);
if (value > 20) {
sender.value = 20;
} else if (value < 0){
sender.value = 0;
} else if (value == '' || isNan(value)) {
sender.value = 0;
} else {
return sender.value;
}
}
重写您的代码如下。 只有通过this
才能完成这项工作。
HTML
<input type="textbox" name="tx1" onblur="checkValue(this)" />
<input type="textbox" name="tx2" onblur="checkValue(this)" />
....
使用Javascript
function checkValue(obj) {
if (obj.value > 20) {
obj.value = 20;
} else if (obj.value < 0){
obj.value = 0;
} else if (value == '' || isNan(obj.value)) {
obj.value = 0;
}
}
您的脚本将返回值,但您无法设置这些值。 所以当blur函数调用脚本时肯定会调用..但是值没有设置在任何地方。
“isNan()”不是函数,而是“isNaN()”,发送输入元素,不仅是元素的值,用于更新输入值。
<script>
function checkValue(input) {
console.log(input.value);
if (input.value > 20) {
return input.value = 20;
} else if (input.value < 0){
return input.value = 0;
} else if (input.value == '' || isNaN(input.value)) {
return input.value = 0;
} else {
return input.value;
}
}
</script>
<input type="textbox" name="tx1" onblur="checkValue(this)" />
<input type="textbox" name="tx2" onblur="checkValue(this)" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.