验证的重点是错误,AND引用THIS元素

validation focus on error, AND referring to THIS element

本文关键字:AND 引用 THIS 元素 错误 验证      更新时间:2023-09-26

很抱歉出现超基础问题,

我正在对Change进行验证——它的行为在一定程度上符合预期——它只允许你继续。。。

这是我的"简单"要求。。。一个字段具有它将接受的值的范围。(即0-3、1-5、1-10…(我正在调用onChange函数,当输入范围内的某个值以外的值时。。。我想要一个警报,焦点保持在该字段(甚至可能清除错误值(

我的代码-工作到它发送警报的地步-然而,一旦您单击警报的"确定",焦点就移到了下一个元素,"坏"数据仍在字段中。。。

我知道有一种方法可以引用"调用"函数的元素,但我不知道语法,但应该很容易集中注意力并清除元素???正确的

代码:

<form name="FRM_SCORING" id="FRM_SCORING" action=""  >
<input type="text" name="AOS1" onchange="checkrange(this.value,0,1);">
<input type="text" name="AOS2" onchange="checkrange(this.value,0,3);">
</form>
<script>
function checkrange(object_value, min_value, max_value) {
//---  remove leading and trailing spaces 
var trimmed_object_value = trim(object_value);
var temp_object_value    = trimmed_object_value;
alert ("You've entered a value that is not allowed. 'nCheck the range of numbers allowed for this 'answer'.");
//---  if less than minimum or greater than maximum, return false  ---//
if ( isNaN(trimmed_object_value) || 
         (trimmed_object_value < min_value) || (trimmed_object_value > max_value)
       ) {
       alert ("You've entered a value that is not allowed.");
    return false;
} 
}
</script>

您有两种可能性:

将元素作为另一个参数传递,或者使用call[MDN]显式设置this在函数内部应该引用的内容:checkrange(this.value,0,1).call(this)