javascript - проверка правильности фокусировки на ошибке и ссылка на этот элемент - PullRequest
1 голос
/ 04 декабря 2011

извините за гиперобоснованный вопрос,

Я делаю проверку на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>

1 Ответ

1 голос
/ 04 декабря 2011

У вас есть две возможности:

Либо передать элемент в качестве другого аргумента, либо использовать call [MDN] для установкиявно то, на что this должен ссылаться внутри функции: checkrange(this.value,0,1).call(this).

...