Несколько Если с Regex

0

У меня есть небольшая проблема с if и regex, и я не нашел свою ошибку :-(

На submit у меня есть каждый, чтобы пройти через все поля ввода (работает)

Тогда a имеет a, если во всех входных полях, где "имя" в имени.

Первая часть, если в ней нет символов, отлично работает (автономно), другой с регулярным выражением не работает :-(

Таким образом, if должен запускаться, когда ничего не находится в поле и когда формат не соответствует 24-часовому формату 00:00 или 09:30...

Таким образом, красная рамка должна быть видимой, когда в поле ничего нет и когда вход не соответствует 24-часовому формату.

Теперь он запускается каждый раз с правильным и ложным вводом :-(

Код:

$(submit1).click(function (e) 
{
    e.preventDefault();

    var regtime = /([01]?[0-9]|2[0-3]):[0-5][0-9]/;

    $("input").css({"border": "1px solid #bbb"});

    $("input").each(function(index) {

        if($('input[name$="[von]"]').val() == '' || (!regtime.test($('input[name$="[von]"]'))))
        {
            $('input[name$="[von]"]').css({"border": "solid", "border-color": "red"});
        }
    });
});

СПАСИБО !

Теги:

1 ответ

4
Лучший ответ

Пытаться

var valid = true;
//loop through only the desired input fields
$('input[name$="[von]"]').each(function () {
    //get the value of the current input fields in the loop
    var $this = $(this),
        value = $this.val();
    //target the value in the regex
    if (value == '' || !regtime.test(value)) {
        $this.css({
            "border": "solid",
                "border-color": "red"
        });
        valid = false;
    }
});

if (!valid) {
    //prevent form submit
}

Поскольку TJ удалил ответ, заимствуя его объяснение для ошибки теста регулярного выражения

Передача объекта jQuery в тест RegExp # неявно вызовет toString на нем, и поэтому значение, которое вы проверили бы, будет "[object Object]", а не значением ввода.

  • 0
    Так лучше.
  • 0
    хотя требуется небольшое дополнение; кажется, что граница должна быть красной, если вход пустой или неправильный. А если нет, вернемся к дефолту. Вы должны добавить блок else с помощью $("input").css({"border": "1px solid #bbb"});
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню