Проверка Javascript, когда пользователь фокусируется на текстовом поле перед фиксацией - PullRequest
0 голосов
/ 21 марта 2012

Проверка JavaScript редко возникает в моей работе, и я немного заржавел.

У меня есть страница, которая подтверждает переопределения для процедуры. Здесь есть три важных элемента;

  1. Флажок (cashCheckBox), который пользователь проверяет, хочет ли он / она предоставить ввод денежных средств
  2. текстовое поле, в котором пользователь помещает фактическое значение (cash), предполагая, что он установил флажок
  3. Кнопка Выполнить.

Как только флажок установлен, пользователь щелкает где-либо еще, в текстовом поле отображается значение по умолчанию ($ 0). Однако, когда пользователь устанавливает флажок, а затем сразу выбирает текстовое поле (без ввода), а затем нажимает кнопку «Выполнить», пользователь может начать процесс, в котором cash по незнанию выбран как «$ 0».

Есть ли простое дополнение, которое я могу добавить к условию if, чтобы учесть эту возможность?

function Validate(){
var f=document.frmGeneral;
  if((f.cashCheckBox.checked) && (f.cash.value=="" || snip(f.cash.value,"$")<0))
  {

    alert("cash must be greater than 0");
    f.cash.focus();
    return false;
  }  
return true;                                        
}

1 Ответ

0 голосов
/ 21 марта 2012

Попробуйте:

function Validate(){
    var f=document.frmGeneral;
    if(f.cashCheckBox.checked && +f.cash.value.replace("$","") >= 0)
    {
        alert("cash must be greater than 0");
        f.cash.focus();
        return false;
    }  
    return true;                       
}

Основное изменение: +f.cash.value.replace("$","").

  1. replace("$","") удаляет все $ символов
  2. + перед f.cash.value приведет к преобразованию строки в число.Таким образом, "0" становится 0, или "abc" становится NaN
  3. После очистки ввода он просто выполняет проверку, чтобы убедиться, что значение больше нуля.Если это не так (т. Е. Это 0 или NaN), то проверка не пройдет.

ОБНОВЛЕНИЕ

Получается 0 должно быть действительным значением.Изменено на >= 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...