Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверить Input (https://javascript.ru/forum/misc/73860-proverit-input.html)

laimas 23.05.2018 14:34

Цитата:

Сообщение от Зосимов
проверяю так

Нет, вы же замечание рони копируете, но игнорируете. Нужно так:

$('.bel').each(function() {
    if(/^[CMX]./.test(this.value)) {
        //значение не пустое и соответствует условию
   } else {
        //пустое значение или не соответствует условию
   }
})

Зосимов 23.05.2018 14:37

вот не знаю только, на сколько это получилось правильно.
проверяю несколько значений на наличие буквы -
$.each($('.bel'),function(){
  if($(this).val() != ""){
    str = $(this).val();
             
              if(!/^C|M|X.+/.test(str)){
                console.log("false");
              }
              else { ..выполняю код }          
              
      }
    });

Зосимов 23.05.2018 14:42

Цитата:

Сообщение от laimas (Сообщение 485868)
Нет, вы же замечание рони копируете, но игнорируете. Нужно так:

$('.bel').each(function() {
    if(/^[CMX]./.test(this.value)) {
        //значение не пустое и соответствует условию
   } else {
        //пустое значение или не соответствует условию
   }
})

у меня задача - если есть хоть одно не соответствие, прервать код и выдать сообщение

laimas 23.05.2018 14:45

Да елки палки, зачем $(this).val() да еще дважды, если доступен DOM объект (this) и его стандартное свойство value?

Вам чего надо: а) проверить не пусто ли и удовлетворяет условию, что походу и наблюдается; б) проверять условие только если есть значение?

рони 23.05.2018 14:46

Зосимов,
var inputs = document.querySelectorAll('.bel');
var validity = [].every.call(inputs, function(node) {
   var str = node.value.trim();
   return !str || /^(C|M|X)/.test(str)
});

if(!validity) alert("err");

Зосимов 23.05.2018 15:06

Цитата:

Сообщение от laimas (Сообщение 485872)
Да елки палки, зачем $(this).val() да еще дважды, если доступен DOM объект (this) и его стандартное свойство value?

Вам чего надо: а) проверить не пусто ли и удовлетворяет условию, что походу и наблюдается; б) проверять условие только если есть значение?

да нужно так
value мне нужен что бы вывести его на консоль )

Зосимов 23.05.2018 15:08

рони, ваш вариант мне подходит. но что выводить на консоль? мне нужно вывести значения, если у всех input есть буквы первые

laimas 23.05.2018 15:14

Цитата:

Сообщение от Зосимов
да нужно так

:D

Как именно? То что рони написал не годится?

У вас условие означает: если не пусто, то, если соответствует условию ..., иначе .... При этом не видно реакции на пустое значение.

А может быть и так: если пусто или не соответствует условию, то...., иначе.... При этом может требоваться отдельно сообщать о пустом значении и несоответствии. То есть можно переписать так: если пусто ..., иначе, если не соответствует, то...., иначе ....

Так чего надо то?

рони 23.05.2018 15:16

Цитата:

Сообщение от Зосимов
если у всех input есть буквы первые

return !str || /^(C|M|X)/.test(str)
красное уберите

рони 23.05.2018 15:18

Зосимов,
var inputs=document.querySelectorAll('.bel');
var validity = [].every.call(inputs, function(node) {
   var str = node.value.trim()
   return  /^(C|M|X)/.test(str)
});

if(validity) alert("ok");


Часовой пояс GMT +3, время: 10:27.