Javascript - onblur函数无法更改文本框的值

Tep*_*orn 2 html javascript onblur

我有一些文本框允许用户输入0到20之间的数字.所以我有一个js验证代码来测试他们是否遵循规则.

我有以下文本框:

<input type="textbox" name="tx1" onblur="checkValue(this.value)" />
<input type="textbox" name="tx2" onblur="checkValue(this.value)" />
....
Run Code Online (Sandbox Code Playgroud)

然后我写一个像这样的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;
  }
}
Run Code Online (Sandbox Code Playgroud)

我试图通过console.log()进行测试.我试过警报('hi')并且它有效.但是,在满足上述条件时,它根本不会改变价值.那么有人可以帮我解决这个问题吗?

yog*_*ogi 11

试试这个

<input type="textbox" name="tx1" onblur="checkValue(this)" />
Run Code Online (Sandbox Code Playgroud)

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;
  }
}
Run Code Online (Sandbox Code Playgroud)