Проверка формы с использованием Jquery с цифрами и буквами - PullRequest
0 голосов
/ 11 июля 2011

Я создаю проверку для проверки, чтобы убедиться, что введен правильный номер детали. Каждая часть начинается с буквы MR в CAPS, за которой следует [ПРОБЕЛ] и три цифры. например (MR 123)

Проблема в том, что если я не могу понять, как это проверить с помощью jquery.

Номер детали всегда начинается с MR.

                var type = $("input#type").val();

                        // Check a that a tank type has been entered.
                        if( type.length < 5  && type.not().contain("MR")){

                                $("#error_upload").html("Please enter the tank number in a format MR XXX.");
                                $("#type").css({borderColor:'red'}).focus();                                    
                                $("name,#file").css({borderColor:'#ccc'});
                                return false;

                        }

Любая помощь будет великолепна.

Ответы [ 3 ]

1 голос
/ 11 июля 2011
if (/^MR \d{3}$/.test(subject)) {
    // Correct tank number format
} else {
    // Incorrect tank number format
}

Это гарантирует, что введенное значение всегда будет только MR + [SPACE] + 3 digits и только этим.

1 голос
/ 11 июля 2011

Здесь можно пройти несколько маршрутов.

  1. Один из них можно продолжить, написав подтверждение таким образом

    • Вы хотели бы получить свой кодвероятно, что-то вроде следующего*

    • Упростите ввод, разрешив только 3 цифры и добавив 'MR ' + type, поскольку для каждого из них требуются MR и пробел, зачем просить пользователя даже ввести его?

      var num = $("input#type").val()
      ,   type;
      
      // Check a that a tank type has been entered.
      if(!/^\d{3}$/.test(num)){
      
          $("#error_upload").html("Please enter the tank number with only digits.");
          $("#type").css({borderColor:'red'}).focus();                                    
          $("name,#file").css({borderColor:'#ccc'});
          return false;
      
      }
      else {
          type = 'MR ' + num;
      }
      
    • Объедините шаги 2 и 3, что приведет к получению ввода, подобного этому <input type="text" class="required digits" maxlength="3" minlength="3" />.Это приводит к менее сложному вводу данных и избавляет от необходимости беспокоиться о простой логике проверки.Это мой любимый выбор.

    • Используйте маску ввода, чтобы пользователи не допускали ошибок с самого начала, но это наиболее "навязчиво".

1 голос
/ 11 июля 2011

Я бы предложил использовать регулярное выражение.

if (type.match(/^MR\s[0-9]{3}$/){
...
}

По сути, он ищет MR, затем пробел (\s), затем 3 числа ([0-9]{3}).Если что-то еще появится, оно вернет false.

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